在 LANDSCAPE 中使用 GhostScript 打印 PDF

Posted

技术标签:

【中文标题】在 LANDSCAPE 中使用 GhostScript 打印 PDF【英文标题】:Print PDF using GhostScript in LANDSCAPE 【发布时间】:2015-07-01 10:34:30 【问题描述】:

我正在按如下方式打印 PDF 文件:

using (GhostscriptProcessor processor = new GhostscriptProcessor())

    List<string> switches = new List<string>();
    switches.Add("-empty");
    switches.Add("-dPrinted");
    switches.Add("-dBATCH");
    switches.Add("-dNOPAUSE");
    switches.Add("-dNOSAFER");
    switches.Add("-dNumCopies=1");
    switches.Add("-sDEVICE=mswinpr2");
    switches.Add("-sOutputFile=%printer%" + printerName);
    switches.Add("-f");
    switches.Add(inputFile);
    processor.StartProcessing(switches.ToArray(), null);

它工作得很好,但我有一个问题。我不能(并且真的尝试过)横向打印任何 PDF 文件。我尝试使用方向,调整大小,更改打印机的系统首选项。我所做的一切都是徒劳的,因为它总是以纵向打印。

有什么想法吗?

【问题讨论】:

尝试添加-dORIENT1=false 作为选项。如果这不起作用,请尝试将其设置为 true。这会翻转页面方向的内部表示,如果 PDF 具有明确的嵌入方向,这可能会有所帮助。 也不工作... :( 可能会有帮助:***.com/questions/3089773/… 【参考方案1】:

你想解决什么问题?如果您试图让打印机在横向介质上打印,而这不是默认设置,那么 mswinpr2 设备无法更改托盘选择。

【讨论】:

是的。 mswinpr2 不会覆盖打印机默认值。谢谢。【参考方案2】:

尝试类似:

using (GhostscriptProcessor processor = new GhostscriptProcessor())

    List<string> switches = new List<string>();
    switches.Add("-empty");
    switches.Add("-dPrinted");
    switches.Add("-dBATCH");
    switches.Add("-dNOPAUSE");
    switches.Add("-dNOSAFER");
    switches.Add("-dNumCopies=1");
    switches.Add("-sDEVICE=mswinpr2");
    switches.Add("-sOutputFile=%printer%" + printerName);
    switches.Add("-c");
    switches.Add("<</Orientation 3>> setpagedevice");
    switches.Add("-f");
    switches.Add(inputFile);
    processor.StartProcessing(switches.ToArray(), null);

【讨论】:

我试过了,并在 *** 的另一个问题中提出了建议......它也不起作用:(

以上是关于在 LANDSCAPE 中使用 GhostScript 打印 PDF的主要内容,如果未能解决你的问题,请参考以下文章

活动 setRequestedOrientation Landscape 与 reverseLandscape?

如何让 Android 系统强制所有 apk 使用 LANDSCAPE?

如何在 iPhone sdk 中以 LandScape 模式启动启动画面

iOS iPhone LaunchImage Landscape

在UITabBarController中强制特定的viewcontroller在landscape中

PhoneGap + Landscape:SplashScreen 正确加载,然后在闪烁和消失之前短暂旋转