Показать сообщение отдельно
  #1  
Старый 17.02.2016, 16:16
-=#PupaJr#=- -=#PupaJr#=- вне форума
Новичок
 
Регистрация: 17.08.2010
Сообщения: 74
Репутация: 518
По умолчанию Параллельная печать документа в PDF

Delphi6.
При составлении отчёта в виде текста и графика рисую на канве принтера сам отчёт и вывожу его на лазерный принтер. Всё работает ОК.
Возникла задача тоже самое делать скрытым образом от пользователя параллельно печатая в PDF. В принципе в PrintDialog выбирая PDFwriter можно сделать требуемое.. но часто забывают и остаётся лишь бумажная версия.
Сделал - вызываю дважды печать - первый раз с принтером который стоит по умолчанию "LaserJet" а второй раз "PDFwriter" выбирая его по индеклу из списка установленных в системе. Всё срабатывает, но надо вводить путь и имя файла для сохранения PDF - НО ЭТОГО НЕ должно быть видно - должно проходить незаметно для пользователя, имя файла - дата и время (сделал), путь - в папку спрограммой (тоже просто), но от появления диалога немогу избавится... как???
Та же проблема если беру XPSwriter - тоже самое, появляется диалог сохранения и погасить его незнаю как... ???
Можно попробывать FindWindow и хендл диалога и искать кнопку "ОК/SAVE" с полем ввода имени -но это изврат..
Можно сделать специальный порт принтера и настроить его сразу на нужную папку - это нужны права администратора и просто программу не перенесёшь уже на другой ПК, тем более как сделать это из самой программы.. ??? К тому же печать в PDF почему-то так идёт в оттенках серого, а при нормальном выборе принтера, вместо лазерного, печатает в цвете, но это не принципиально... хотя иногда на некоторых ПК палитра не серая а черно-белая и тогда пропадают некоторые элементы графика (видимо настройки драйвера).
Печать в картинку тоже не вариант(несколько страниц, была бы 1....), но вот в WMF многостраничный можно было-бы, но не знаю как.
Спасибо.
Ответить с цитированием