我正在尝试使用GhostScript将PDF文件打印到任何物理打印机中。
我在打印机上收到黑白结果。
所以,阅读我读到的关于PostScript文件的Ghostscript文档。所以我试一试(但没有成功)。
这是我的C#代码:
public bool printGhostScript(string firstPage, string lastPage, string printerName, string pdfFileName)
{
int numberOfCopies = 1;
string ghostScriptPath = @"C:\PrinterBatch\gs9.19\bin\gswin64.exe";
string postScriptPath = @"C:\PrinterBatch\gs9.19\lib\setup.ps";
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.Arguments = " -dSAFER -dFirstPage=" + firstPage + " -dLastPage=" + lastPage + " " + postScriptPath + " -dBATCH -dNOPAUSE -sFONTPATH=C:\\Windows\\Fonts -sPAPERSIZE=letter -sOutputFile=\"\\\\spool\\" + printerName + "\" \"" + pdfFileName + "\" ";
startInfo.FileName = ghostScriptPath;
startInfo.UseShellExecute = false;
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.RedirectStandardError = true;
startInfo.RedirectStandardOutput = true;
Process process = Process.Start(startInfo);
process.WaitForExit(30000);
if (process.HasExited == false)
process.Kill();
return process.ExitCode == 0;
}
正如我们所看到的,我正在调用命令来打印和设置名为“setup.ps”的PostScript文件。
以下是我的Setup.ps的代码:
mark
/BitsPerPixel 4
/NoCancel true
(mswinpr2) finddevice
putdeviceprops
setdevice
我遇到的问题是:
Error: /invalidaccess in --setdevice-- 有没有人有想法帮助我?
我只需打印彩色和质量。
抱歉英语不好。
修改
我忘记在PostScript文件中编写命令行“ / BitsPerPixel 4 ”。 (已经修好了)。
根据文档,这条线是神奇的,并且使所有东西都打印成彩色和质量。
在“arguments”处加载的命令行是:
-dSAFER -dFirstPage=1 -dLastPage=11 C:\PrinterBatch\gs9.19\lib\setup.ps -dBATCH -dNOPAUSE -sFONTPATH=C:\Windows\Fonts -sPAPERSIZE=letter -sOutputFile="\\spool\PDFCreator" "C:\Users\JUNIOR\Desktop\_ABC.pdf"
在我开始使用PostScript之前(当我能够打印但只有b / w )之前,命令是这样的:
-dSAFER -dFirstPage=1 -dLastPage=11 -sDEVICE=mswinpr2 -dBATCH -dNOPAUSE -sFONTPATH=C:\Windows\Fonts -sPAPERSIZE=letter -sOutputFile="\\spool\PDFCreator" "C:\Users\JUNIOR\Desktop\_ABC.pdf"