我有一个横向 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 输入。
下一个; <</Orientation 0>> setpagedevice
实际上是无操作,默认方向为 0,因此您已将其更改为默认值。将其设置为 1 **,ight* 会产生效果,但我对此表示怀疑。
PostScript 片段<<//AutoRotatePages /All>> setdistillerparams
几乎肯定与您想要的完全相反。这会导致 Ghostscript 尝试旋转页面,以便输出中的大多数页面具有水平运行的文本。如果您有横向 PDF,则文本几乎肯定已经是水平的(当然,在没有示例的情况下,我无法分辨)。所以这不会做任何事情。
您可能想要<<//AutoRotatePages /None>> 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 以纵向模式显示