使用 Ghostscript.NET 包装器打印 PDF - 空白页

Posted

技术标签:

【中文标题】使用 Ghostscript.NET 包装器打印 PDF - 空白页【英文标题】:Printing PDF with Ghostscript.NET wrapper - Blank pages 【发布时间】:2020-08-03 08:35:23 【问题描述】:

我正在使用 Ghostscript.NET 包装器打印 PDF 文件。打印工作正常,但实际打印前出现 2 个空白页。请问有人可以帮我吗?我对以下代码做错了吗?顺便说一下,我们的打印机很小,是用来打印条形码的。

Dim processor As Ghostscript.NET.Processor.GhostscriptProcessor = New Ghostscript.NET.Processor.GhostscriptProcessor()
        
Dim switches As List(Of String) = New List(Of String)
switches.Add("-empty")
switches.Add("-dPrinted")
switches.Add("-dBATCH")
switches.Add("-dNOPAUSE")
switches.Add("-dNOSAFER")
switches.Add("-dDEVICEHIGHTPOINTS=85")
switches.Add("-dDEVICEWIDTHPOINTS=90")
switches.Add("-dFIXEDMEDIA")
switches.Add("-dPDFFitPage")
switches.Add("-sDEVICE=mswinpr2")
switches.Add(Convert.ToString("-sOutputFile=%printer%") + _printerName)
switches.Add("-c")
switches.Add(_pdfFile)
processor.StartProcessing(switches.ToArray(), Nothing)

【问题讨论】:

缺少一个E:应该是-dDEVICEHEIGHTPOINTS 【参考方案1】:

我真的怀疑你想把-c 放在你的命令行中;它引入了 PostScript 程序序列。假设您的文件是 PDF 文件,您真的不想这样做。即使它是 PostScript 程序,通常也会导致 Ghostscript 将文件 name(而不是内容)视为 PostScript 程序,我预计会产生错误。

确实,当我从命令行尝试时,它会引发错误。我不知道 Ghostscript.NET 会有什么影响。

我建议您不要使用-dNOSAFER,因为它会绕过所有安全性。当然,您可能知道您正在打印的所有文件的出处,在这种情况下它是安全的。但我还是不明白你为什么要使用它。

【讨论】:

谢谢。不幸的是,尽管我删除了 -c 和 -dNOSAFER 命令,但这并没有奏效。总是,我最初打印 2 个空白页,然后进行实际打印。请问有其他的想法吗? 这很难说,因为我没有你的打印机,也没有你的 PDF 文件可供查看。

以上是关于使用 Ghostscript.NET 包装器打印 PDF - 空白页的主要内容,如果未能解决你的问题,请参考以下文章

Ghostscript.net 多线程问题

Ghostscript.net 打印 pdf 页面方向

Ghostscript.NET.dll 打印pdf到指定打印机

打印时出现 GhostScript 图像质量问题

使用 Ghostscript 打印时页面裁剪和旋转不正确

尝试使用具有并行循环的多个 GhostScript 实例进行打印。