2009-10-26 4 views
2

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

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

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

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

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

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

ответ

1

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

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

+0

Мне нравится идея просто вызвать Ghostscript напрямую. Предполагая, что я могу позаботиться о преобразовании PS в PDF (с использованием Ghostscript DLL, я думаю?), Как мне заставить программное обеспечение выплевывать PS-файл для начала? – mrduclaw

+0

@mrduclaw Я изменил свой ответ, чтобы решить эту проблему, но в основном вы используете драйвер принтера постскриптума (например, яблочный лазерный редактор встроен в окна) и перенаправляет вывод в файл. – danio

+0

@danio Большое вам спасибо за помощь! – mrduclaw

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"

, который содержит "авто" опции:

[Опции] UseAutosave = 1 UseAutosaveDirectory = 1 AutosaveFormat = pdf AutosaveDirectory = NoConfirmMessageSwitchingDefaultprinter = 1

Смежные вопросы