Создание сценариев PDF

2

Мне поручили автоматизировать сбор некоторых отчетов из наших удаленных мест. Машины иногда используются местным персоналом в месте нахождения, и их использование случайное. Программное обеспечение, генерирующее отчеты, несколько ограничено и позволяет печатать только на принтере по умолчанию. Отдел, который принимает эти отчеты, не хочет ничего менять, и им нравится получать свои PDF файлы.

Я могу программным образом изменить принтер по умолчанию для использования принтера PDFCreator (и переключить его обратно, чтобы персонал в этом месте не заметил), и я могу программно сгенерировать отчет и отправить его на принтер.

Моя проблема заключается в том, что при этом появляется окно из PDFCreator, требующее имя файла и некоторые метаданные для PDF.

Я хотел бы свести к минимуму появление всплывающих окон и, надеюсь, сделать мой сбор отчетов максимально ненавязчивым для локальных пользователей.

Есть ли простой способ автоматизировать взаимодействие PDFCreator, или я оставил его с помощью SendMessage (или аналогичного) и моделирования взаимодействия с пользователем?

PDFCreator не требуется, я бы также предложил предложения для других программных продуктов PDF-print-type, которые также решают эту проблему.

Теги:
automation
scripting
pdf

3 ответа

1
Лучший ответ

PDFCreator - это оболочка VB-оболочки вокруг ghostscript, поэтому вы должны иметь возможность изменять PDFCreator, чтобы не открывать диалог и не давать ему имя файла каким-либо другим способом.

В качестве альтернативы вы можете использовать драйвер принтера постскриптума с выходом, направленным на FILE: и затем вы можете программным способом вызвать ghostscript для преобразования PS в PDF самостоятельно. Я не вижу способа остановить окна встроенных драйверов postscript от создания диалога, когда порт установлен в FILE: и когда порт установлен в PSFile, я не могу понять, куда идет файл. Однако GSPSprinter.html содержит инструкции по настройке принтера постскриптума Ghostscript для фиксированного местоположения файла, чтобы вы не получили никаких диалогов.

  • 0
    Мне нравится идея просто вызывать Ghostscript напрямую. Предполагая, что я могу позаботиться о преобразовании PS в PDF (я полагаю, с помощью DLL-библиотеки Ghostscript), как мне заставить программное обеспечение выкладывать PS-файл для начала?
  • 0
    @mrduclaw Я изменил свой ответ, чтобы решить эту проблему, но в основном вы используете драйвер принтера PostScript (например, Apple Laserwriter встроен в Windows) и перенаправляете вывод в файл.
Показать ещё 1 комментарий
1

AFAIK, вы остаетесь играть в игры SendMessage. Это не так уж плохо, возьмите копию Spy ++ и получайте удовольствие!

0

В командной строке 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

Сообщество Overcoder
Наверх
Меню