我在尝试使用Ghostscript在Windows中打印PDF文件时遇到大问题。 '在Windows中'的论点来自于我试图使用MS Windows默认驱动程序来实现'-sDEVICE = mswinpr2'。我需要所有Windows打印机/驱动程序支持。此外,我无法使用PDF图像然后打印作业类型的解决方案。我也不能使用gswin64c.exe文件,我需要完成工作而没有任何弹出窗口(没有任何形式)。我所能做的只是将一些参数发送到gsdll32.dll并创建一个打印作业。
我正在使用C#包装器 https://github.com/mephraim/ghostscriptsharp/tree/master
我发送以下参数:“-dBATCH -dNOPAUSE -dNOPROMPT -dDEVICEWIDTHPOINTS = 612 -dDEVICEHEIGHTPOINTS = 792 -dFIXEDMEDIA -dPDFFitPage -sDEVICE = mswinpr2 -dQUIET -sOutputFile = \”%printer%Epson Stylus Pro 4900 \“D :\次数1.pdf“
每次打印机选择对话框都会弹出。我理解参数的顺序......因为我改变了它并且它有不同的结果。
实际问题: 我必须将哪些参数发送到GhostScript dll才能使用默认的MS Windows打印驱动程序打印PDF文件。
答案 0 :(得分:0)
您是否尝试使用GS的命令行版本而不是DLL或C#thingy?我建议你先集中精力让它先工作。
打印机的名称是什么(如Windows中所示)?
您使用的是什么版本的Ghostscript?
尝试使用不带'-dBATCH',' - dNOPAUSE',' - dNOPROMPT',' - dQUIET'的命令行。这样,如果Ghostscript试图告诉你一些你不会忽略它或错过它。
如果命令行有效;我看到你已经逃过了“字符,但没有'%',你可能想要逃避它们,或者将它们加倍。根据你的这个包装器的工作方式,它们可能会被读作格式说明符。
答案 1 :(得分:0)
命令行中使用的参数首先在命令行版本gswin64c.exe(64位操作系统)中得到验证,它们工作正常。
我使用的是GS版本9.10(最新版本)。
我尝试了不同的参数组合,有或没有其中一些...相同的结果... -100退出代码(一般故障没有指明导致它的错误)。
这个%字符似乎不是问题......我会尝试更多的东西。
感谢Ken的帮助
答案 2 :(得分:0)
就打印机对话框弹出而言,如果将“mswinpr2”替换为兼容的设备名称(例如ljet4),则提示将消失。我的猜测是你的计算机必须安装了多台打印机,因此Windows会提示你从列表中选择一台。