我的任务是自动从远程位置收集一些报告。这些机器有时在当地的工作人员在本地使用,它们的使用是随机的。生成报告的软件有限,只允许我们打印到默认打印机。正在接受这些报告的部门不希望任何改变,他们喜欢获取他们的PDF。
我可以通过编程方式更改默认打印机以使用PDFCreator打印机(并将其切换回来,以便该位置的工作人员不会注意到),并且我可以以编程方式生成报告并将其发送到打印机。
我的问题是这样做会从PDFCreator弹出一个窗口,想要一个文件名和一些PDF的元数据。
我想尽量减少窗口的弹出,并希望尽可能让我收集的报告对本地用户不显眼。
是否有一种简单的方法可以自动化PDFCreator交互,还是使用SendMessage(或类似方法)并模拟用户交互?
PDFCreator不是必需的,我也会为解决这个问题的其他PDF打印类软件提出建议。
答案 0 :(得分:1)
AFAIK,你还在玩SendMessage游戏。这并不是那么糟糕,抓住Spy ++的副本并玩得开心!
答案 1 :(得分:1)
PDFCreator是一个围绕ghostscript的VB包装器,因此您应该能够修改PDFCreator以不弹出对话框并以其他方式为其提供文件名。
或者你可以使用带有输出定向到FILE的postscript打印机驱动程序:然后你可以编程调用ghostscript自己将PS转换为PDF。当端口设置为FILE时,我无法看到阻止windows内置postscript驱动程序创建对话框的方法:当port设置为PSFile时,我无法确定文件的位置。但是GSPSprinter.html有关于如何将Ghostscript postscript打印机设置到固定文件位置的说明,因此您不应该得到任何对话框。
答案 2 :(得分: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