Получение ошибки: 1. Убедиться, что печать работает в Linux 2. Запустить блокнот wine: wine notepad 3. Ввести какой-нибудь текст и отправить на печать Ничего не происходит, сообщений об ошибках не выдается. Для 64-разрядных приложений wine, например, Internet Explorer, печать работает. Печать не работает при WINARCH=win64 и win32. --- После включения трассировки WINEDEBUG=+winspool есть подозрение на неправильный вызов функции StartDocPrinterW: "Плохой" вызов из notepad.exe: trace:winspool:StartDocPrinterW (hPrinter = 0000000000000002, Level = 1, pDocInfo = 000000000011E7C0 {pDocName = L"Имя-документа", pOutputFile = L"C:\\windows\\CUPS:Cups-PDF", pDatatype = (null)}): (вместо имени файла в pOutputFile могут быть краказябры) Согласно документации Microsoft, при печати на принтере не должно быть задано pOutputFile. "Хороший" вызов из iexplore.exe: trace:winspool:StartDocPrinterW (hPrinter = 0000000000000002, Level = 1, pDocInfo = 000000000011EB80 {pDocName = L" Имя-документа", pOutputFile = (null), pDatatype = (null)}):
Какая-то странная история. Попробуйте выполнить epm play wine > есть подозрение на неправильный вызов функции StartDocPrinterW: Да, но функции вызывает приложение. > Печать не работает при WINARCH=win64 и win32. Уточните, пожалуйста, при какой разрядности всё же проблема.
Created attachment 15513 [details] log-файл wine В строке 341 находится winspool:StartDocPrinterW, который вызывает подозрение
1. Обновление wine не требуется. Выполнил sudo epm update sudo epm play wine # /usr/bin/env bash /etc/eepm/play.d/wine.sh --run Package wine is already installed from ALT repository. 2. Для получения log-файла использовал: export WINEDEBUG=+winspool wine notepad 2> ~/mylog В блокноте ввел 1 символ, нажал Ctrl-P, <OK>, закрыл блокнот. 3. Неправильный аргумент pDocFile при вызове StartDocPrinterW() - это, конечно, только мое подозрение. Кроме несоответствия документации, смущает, что значение меняется (в сегодняшнем log-файле оно другое). 4. Первоначально я обнаружил невозможность печати в собственной 32 разрядной программе, но потом выяснил, что не печатает и стандартное приложение wine. Разрядность: wine приложение 32бит notepad.exe 32бит Не печатает 64бит notepad.exe 32бит Не печатает 64бит iexplore.exe 64бит Печатает
(Ответ для Александр Агеев на комментарий #3) ... > wine приложение > 32бит notepad.exe 32бит Не печатает > 64бит notepad.exe 32бит Не печатает > 64бит iexplore.exe 64бит Печатает Тут не хватает > 64бит notepad.exe 64бит ??? вы не могли бы проверить?
notepad.exe, входящий в состав wine, 32-битный. Запустить 64-битный notepad.exe, входящий в состав windows-10, не получается, выдает сообщения об ошибке: Z:\media\sf_\2>./notepad.exe Z:\media\sf_\2>011c:fixme:ntdll:EtwEventSetInformation (deadbeef, 2, 0000000140020A4A, 39) stub 011c:fixme:heap:RtlSetHeapInformation handle 0000000000000000, info_class 1, info 0000000000000000, size 0 stub! 011c:fixme:combase:RoGetActivationFactory (L"Windows.ApplicationModel.Resources.Core.ResourceManager", {1cc0fdfc-69ee-4e43-9901-47f12687baf7}, 000000000011FC00): semi-stub 011c:err:combase:RoGetActivationFactory Failed to find library for L"Windows.ApplicationModel.Resources.Core.ResourceManager"
(Ответ для Александр Агеев на комментарий #5) > notepad.exe, входящий в состав wine, 32-битный. Ну вообще-то в 64-битном wine все программы по определению 64-битные. К тому же свои утверждения всегда можно проверить: $ file sys*/notepad.exe system32/notepad.exe: PE32+ executable (GUI) x86-64, for MS Windows, 5 sections syswow64/notepad.exe: PE32 executable (GUI) Intel 80386, for MS Windows, 5 sections
Признаю свою вину. От разрядности не зависит. c:\windows\system32\notepad.exe и c:\windows\syswow64\notepad.exe не печатает, а iexplore.exe печатает. Спасибо, теперь буду внимательнее с каталогами.