Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 创建PDF脚本_C#_Pdf_Scripting_Automation - Fatal编程技术网

C# 创建PDF脚本

C# 创建PDF脚本,c#,pdf,scripting,automation,C#,Pdf,Scripting,Automation,我的任务是从我们的远程位置自动收集一些报告。这些机器有时由现场工作人员在当地使用,而且使用是随机的。生成报告的软件有些有限,只允许我们使用默认打印机打印。接受这些报告的部门不希望有任何改变,他们喜欢得到他们的PDF 我可以通过编程将默认打印机更改为使用PDFCreator打印机(并将其切换回原处,以便工作人员不会注意到),并且可以通过编程生成报告并将其发送到打印机 我的问题是这样做会从PDFCreator弹出一个窗口,想要一个文件名和一些PDF元数据 我希望尽量减少弹出的窗口,并希望我收集的报告

我的任务是从我们的远程位置自动收集一些报告。这些机器有时由现场工作人员在当地使用,而且使用是随机的。生成报告的软件有些有限,只允许我们使用默认打印机打印。接受这些报告的部门不希望有任何改变,他们喜欢得到他们的PDF

我可以通过编程将默认打印机更改为使用PDFCreator打印机(并将其切换回原处,以便工作人员不会注意到),并且可以通过编程生成报告并将其发送到打印机

我的问题是这样做会从PDFCreator弹出一个窗口,想要一个文件名和一些PDF元数据

我希望尽量减少弹出的窗口,并希望我收集的报告尽可能不影响本地用户

是否有一种简单的方法来自动化PDFCreator交互,或者我只剩下使用SendMessage(或类似工具)和模拟用户交互?


PDFCreator不是必需的,我也会为解决这个问题的其他PDF打印类型的软件提供建议。

好了,你就可以玩SendMessage游戏了。没那么糟糕,抓起Spy++的副本,玩得开心

PDFCreator是一个VB包装轮重影脚本,因此您应该能够修改PDFCreator,使其不会弹出对话框,并以其他方式为其提供文件名


或者,您可以使用postscript打印机驱动程序,将输出定向到FILE:中,然后您可以通过编程调用ghostscript,自己将PS转换为PDF。当端口设置为FILE时,我看不到阻止windows内置postscript驱动程序创建对话框的方法:当端口设置为PSFile时,我无法确定文件的位置。但是,有关于如何将Ghostscript postscript打印机设置到固定文件位置的说明,这样您就不会看到对话框

PDFCreator命令行帮助中说 您可以通过/NoStart关闭打印窗口 您可以通过以下方式提供.INI文件:

“C:\Program Files\PDFCreator\PDFCreator.exe”/NoStart/options文件”C:\dev\convert\convert.ini”/PF“DOC\u TO\u convert.DOC”

包含“自动”选项的:

[选项] UseAutosave=1 UseAutosaveDirectory=1 AutosaveFormat=pdf 自动存储目录=
NoConfigMessageSwitchingDefaultPrinter=1

我喜欢直接调用Ghostscript。假设我可以将PS转换为PDF(我想是使用Ghostscript DLL吧?),那么我该如何让软件从一开始就吐出PS文件?@mrduclaw我已经修改了我的答案来解决这个问题,但基本上你使用的是postscript打印机驱动程序(例如,apple laserwriter内置于windows中)并将输出重定向到文件。@danio非常感谢您的帮助!