почему расширенные свойства теряются при печати в файл prn - PullRequest
0 голосов
/ 12 февраля 2019

при печати напрямую на принтер все расширенные свойства диалогового окна настройки принтера будут работать, например, сшивание, масштабирование до 50% или создание водяного знака на документе.они очень важны для правильной работы финишера принтера.

Но если я сначала печатаю в файл, а затем копирую файл на принтер, все расширенные свойства теряются в HP Laserjet (PCL).

Чтобы воспроизвести это, я смоделировал это также в Delphi с очень простым кодом.После того, как обычная печать на принтере работала как положено, я изменил только lpszOutput в DocInfo на "... \ test.prn" (не более!), И файл prn был сгенерирован.Затем я открыл файл в двоичном режиме и записал его на тот же принтер («StartDocPrinter», «WritePrinter», «EndDocPrinter»).И тогда документ был напечатан правильно, но все настройки в расширенных свойствах потеряны, без масштабирования, без водяных знаков ..

Я думал, принтер должен получать точно такой же поток двоичных данных, но, пожалуйста, что можнобыть причиной того, что драйвер, очевидно, записывает различный контент в файл prn и отличается от принтера?или есть какие-то флаги или команды, которые я должен установить кодом?это специфическая проблема HP?заранее спасибо.

1 Ответ

0 голосов
/ 13 февраля 2019

Вы вызываете PrintDlgEx или PageSetupDlg в обоих случаях?

Свойства находятся в структуре задания печати DEVMODE , которую драйвер использует при визуализации задания.Похоже, ваш DEVMODE не настроен правильно или игнорируется, когда вы устанавливаете lpszOutput.Поведение, которое вы видите, очень похоже на то, когда вы снимаете флажок «Включить расширенные функции печати» принтера.

Здесь есть некоторая информация об использовании диалогового окна печати с lpszOutput .

...