Ghostscript.net 打印 pdf 页面方向

Posted

技术标签:

【中文标题】Ghostscript.net 打印 pdf 页面方向【英文标题】:Ghostscript.net print pdf page orientation 【发布时间】:2016-06-03 15:57:01 【问题描述】:

我尝试使用 ghostscript 命令通过网络打印机以 landscape 方向打印 pdf,但得到了纵向打印输出。请帮我找出解决方案。

GhostscriptVersionInfo gvi = new GhostscriptVersionInfo(new Version(0, 0, 0), Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "gsdll32.dll"), string.Empty, GhostscriptLicense.GPL);
Ghostscript.NET.Processor.GhostscriptProcessor processor = new Ghostscript.NET.Processor.GhostscriptProcessor(gvi, true);
List<string> switches = new List<string>();
switches.Add("-empty");
switches.Add("-dPrinted");
switches.Add("-dBATCH");
switches.Add("-dNOPAUSE");
switches.Add("-dNOSAFER");
switches.Add("-dNOPROMPT");               
switches.Add("-dPDFFitPage");  
switches.Add("-dNumCopies=" + copies.ToString());
switches.Add("-sDEVICE=mswinpr2");
switches.Add(Convert.ToString("-sOutputFile=%printer%") + printer);
switches.Add("-c");
switches.Add("<</Orientation 3>> setpagedevice");
switches.Add("-f");
switches.Add(pdfFileName);

processor.StartProcessing(switches.ToArray(), null);   

【问题讨论】:

“不工作”是什么意思?您是否收到错误、不正确的输出、意外的输出或其他问题?我们可以查看的示例文件在哪里?您正在使用的许多命令行开关(例如 /AutoRotatePages)对 mswinpr2 设备无效,而其他一些(例如 /Orientation)在输入是 PDF 文件而不是 PostScript 时无效。您“可能”想要设置 FIXEDMEDIA 和特定媒体 e 设置 PDFFitPagesize,然后设置 PDFFitPage,但是如果没有看到示例就不可能说。 @KenS,非常感谢您的评论。我更新了有问题的打印命令。使用上述命令通过打印机打印 pdf 时,我没有收到任何错误消息。实际上它打印pdf但方向没有改变。我想以横向打印 pdf。 嗯....您的打印机有横向介质吗?如果是这样,您必须在打印之前选择该介质作为打印机的默认设置(至少我相信是这种情况)。 PDFFitPage 将定向输出以使其最适合媒体,因此如果您选择了纵向纸张,则 PDFFitPage 会将内容(忽略其他说明)旋转为纵向。处理此问题的一种方法是通过使用 -dFIXEDMEDIA 和 -dDEVICEHIGHTPOINTS 和 -dDEVICEWIDTHPOINTS 设置特定的固定媒体大小来设置媒体大小。然后执行 PDFFitPage 将使内容适合该尺寸的纸张。 @KenS,它在给定媒体大小后工作。请发布您的答案,以便我接受。非常感谢:) 不客气,我很高兴它的工作 【参考方案1】:

PDFFitPage 将调整输出的方向,使其最适合媒体,因此如果您选择了纵向纸张,则 PDFFitPage 会将内容(忽略其他说明)旋转为纵向。

解决此问题的一种方法是通过使用 -dFIXEDMEDIA 和 -dDEVICEHIGHTPOINTS 和 -dDEVICEWIDTHPOINTS 设置媒体大小来设置特定的固定媒体大小。然后执行 PDFFitPage 将使内容适合该尺寸的纸张

【讨论】:

以上是关于Ghostscript.net 打印 pdf 页面方向的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

Ghostscript.NET 无法使用选定的打印机名称进行打印

Ghostscript.NET 忽略后记

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