我有一个横向 PDF,需要以纵向模式打印在 Zebra 标签上?我该怎么办?

Posted

技术标签:

【中文标题】我有一个横向 PDF,需要以纵向模式打印在 Zebra 标签上?我该怎么办?【英文标题】:I have a PDF in Landscape which need to be printed on a Zebra label in portrait mode? What should I do? 【发布时间】:2019-04-18 11:10:34 【问题描述】:

我正在使用GhostScript 将我的 PDF 标签打印到 Zebra 标签打印机。但是 PDF 是横向的,因此没有正确打印在标签上。我想使用Ghostscript 以纵向旋转 PDF 并打印。

我尝试了很多选项,例如"-dNORANGEPAGESIZE" ,"-c ".setpdfwrite <<//AutoRotatePages /All>> setdistillerparams"","-dEPSCrop -c "<</Orientation 0>> setpagedevice"",但没有任何效果。有什么办法可以做到这一点?

%GSC% -dPRINTED -q -dSAFER -dBATCH -dNOPAUSE -dDEVICEWIDTHPOINTS=%5 -dDEVICEHEIGHTPOINTS=%6 -sDEVICE=%2 %PAGE_SIZE% %OUTPUT_FILE% "%~1" -c ".setpdfwrite <<//AutoRotatePages /All>> setdistillerparams"

:结束

我希望 PDF 应该使用 Ghostscript 旋转到纵向

【问题讨论】:

也许您可以尝试将 Zebra 打印机的默认设置更改为横向打印 不,我无法更改打印机设置,因为它还将用于打印其他格式。 【参考方案1】:

从你的问题中不清楚你在做什么。您提供了一个命令行,其中重要的条目带有批处理文件变量名称(例如 %5、%6 等)。

您说您正在使用 Ghostscript 将我的 PDF 标签打印到 Zebra 标签打印机,但命令行不包括斑马打印机设备,也不包括 mswinpr2 设备。事实上,它使用 pdfwrite 设备。这意味着 Ghostscript 正在生成 PDF 文件,而不是打印到打印机。

我建议的第一件事是您提供一个示例文件(并在此处发布 URL)。

接下来要清楚地说明您正在使用什么命令行(并且所有变量都用实际值填充!)。然后我们可以看到问题是什么,并重现它。否则一切都是猜测。

现在,对 Zebra 打印机的引用似乎用词不当,您似乎正在尝试生成一个已旋转的新 PDF 文件。这可能不是世界上最好的主意。如果可能的话,您应该继续使用原始 PDF 文件并更改打印设置以使其正常工作。

但是,假设由于某种原因这是不可能的,那么如果您的参数正确,Ghostscript 可以做到。

第一点是-dEPSCrop 不会对 PDF 输入产生任何影响,因为它会裁剪 EPS 输入。

下一个; &lt;&lt;/Orientation 0&gt;&gt; setpagedevice 实际上是无操作,默认方向为 0,因此您已将其更改为默认值。将其设置为 1 **,ight* 会产生效果,但我对此表示怀疑。

PostScript 片段&lt;&lt;//AutoRotatePages /All&gt;&gt; setdistillerparams 几乎肯定与您想要的完全相反。这会导致 Ghostscript 尝试旋转页面,以便输出中的大多数页面具有水平运行的文本。如果您有横向 PDF,则文本几乎肯定已经是水平的(当然,在没有示例的情况下,我无法分辨)。所以这不会做任何事情。

您可能想要&lt;&lt;//AutoRotatePages /None&gt;&gt; setdistillerparams 或更简单的-dAutoRotatePages=/None。当您不希望它旋转页面时,它会停止 pdfwrite 设备。

当然,仍然不会有任何效果(除非我误读了批处理文件片段),因为它出现在输入文件名之后。因此 Ghostscript 将处理输入文件和到该点的开关,然后处理 -c 开关引入的以下 PostScript,然后退出。 AutoRotatePages 会影响在它之后的任何输入,而不是在它之前。

【讨论】:

你好,确切的命令是:%GSC% -dPRINTED -q -dSAFER -dBATCH -dNOPAUSE -dDEVICEWIDTHPOINTS=%5 -dDEVICEHEIGHTPOINTS=%6 -sDEVICE=%2 %PAGE_SIZE% %OUTPUT_FILE% " %~1" 我们的 Zebra 打印机是 203 DPI,它总是按照 4*6​​ 英寸的纸张打印。百分比变量被替换: %GSC% -dPRINTED -q -dSAFER -dBATCH -dNOPAUSE -dDEVICEWIDTHPOINTS=288 -dDEVICEHEIGHTPOINTS=432 -sDEVICE=mswinpr2 %PAGE_SIZE% %OUTPUT_FILE% "R:_carriers\TPN_UK\Certification\Submission001\Labels \下一天" 我没有使用 pdfwritedevice 命令。如果现在的问题是否清楚,请告诉我。此外,使用 AutoRotatePages 的正确位置应该是什么。此外,如果有任何其他最适合旋转页面的解决方案。 如果你要使用 AutoRotatePages,那么你需要在输入文件名之前使用它。但是,该开关 only 会影响 pdfwrite 设备,因此如果您使用的是 mswinpr2 设备,则不应使用它。您需要将 -dPDFFitPage 和 -dFIXEDMEDIA 添加到命令行。您可以使用显示设备而不是 mswinpr2 设备来测试结果,两者的行为是相同的(但不要设置 -dNOPAUSE 否则您将看不到任何东西)。您不需要设置媒体大小(从输入 PDF 文件中设置),因此您可以删除 %PAGE_SIZE% 中的任何内容。 -dPDFFitPage 我从早上就开始使用并且正在工作,但固定媒体没有显示任何差异。

以上是关于我有一个横向 PDF,需要以纵向模式打印在 Zebra 标签上?我该怎么办?的主要内容,如果未能解决你的问题,请参考以下文章

以横向模式打印报告

当屏幕处于横向模式时,UIAlertview 以纵向模式显示

java的PDF纵横向打印

使用 ghostscript 9.0 将大型横向 PDF 绘图打印到 a3 LaserJet4(纵向)

模式视图中的 UIWebview 在横向模式下以纵向显示

尝试在 iOS 8 中以横向模式而不是纵向模式显示键盘