Мне поручили автоматизировать сбор некоторых отчетов из наших удаленных мест. Машины иногда используются местным персоналом в месте нахождения, и их использование случайное. Программное обеспечение, генерирующее отчеты, несколько ограничено и позволяет печатать только на принтере по умолчанию. Отдел, который принимает эти отчеты, не хочет ничего менять, и им нравится получать свои PDF файлы.
Я могу программным образом изменить принтер по умолчанию для использования принтера PDFCreator (и переключить его обратно, чтобы персонал в этом месте не заметил), и я могу программно сгенерировать отчет и отправить его на принтер.
Моя проблема заключается в том, что при этом появляется окно из PDFCreator, требующее имя файла и некоторые метаданные для PDF.
Я хотел бы свести к минимуму появление всплывающих окон и, надеюсь, сделать мой сбор отчетов максимально ненавязчивым для локальных пользователей.
Есть ли простой способ автоматизировать взаимодействие PDFCreator, или я оставил его с помощью SendMessage (или аналогичного) и моделирования взаимодействия с пользователем?
PDFCreator не требуется, я бы также предложил предложения для других программных продуктов PDF-print-type, которые также решают эту проблему.
PDFCreator - это оболочка VB-оболочки вокруг ghostscript, поэтому вы должны иметь возможность изменять PDFCreator, чтобы не открывать диалог и не давать ему имя файла каким-либо другим способом.
В качестве альтернативы вы можете использовать драйвер принтера постскриптума с выходом, направленным на FILE: и затем вы можете программным способом вызвать ghostscript для преобразования PS в PDF самостоятельно. Я не вижу способа остановить окна встроенных драйверов postscript от создания диалога, когда порт установлен в FILE: и когда порт установлен в PSFile, я не могу понять, куда идет файл. Однако GSPSprinter.html содержит инструкции по настройке принтера постскриптума Ghostscript для фиксированного местоположения файла, чтобы вы не получили никаких диалогов.
AFAIK, вы остаетесь играть в игры SendMessage. Это не так уж плохо, возьмите копию Spy ++ и получайте удовольствие!
В командной строке PDFCreator говорится, что вы можете передать /NoStart, чтобы закрыть окно печати вы можете предоставить файл .INI следующим образом:
"C:\Program Files\PDFCreator\PDFCreator.exe" /NoStart/OptionsFile "C:\dev\convert\convert.ini" /PF "DOC_TO_CONVERT.doc"
который содержит опции "auto":
[Options] UseAutosave = 1 UseAutosaveDirectory = 1 AutosaveFormat = PDF AutosaveDirectory = NoConfirmMessageSwitchingDefaultprinter = 1