我正在使用GhostScript
将我的PDF标签打印到Zebra Label打印机。但PDF是在横向,因此没有正确打印在标签上。我想使用Ghostscript
和print在Portrait中旋转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"
:结束
我希望使用Ghostscript
将PDF旋转到Portrait
从你的问题中不清楚你到底在做什么。您已经提供了一个命令行,其中包含批处理文件变量名称(例如%5,%6等)的重要条目。
您说您正在使用Ghostscript'将我的PDF标签打印到Zebra Label打印机',但命令行不包括斑马打印机设备,也不包括mswinpr2设备。实际上它使用pdfwrite设备。这意味着Ghostscript正在生成PDF文件,而不是打印到打印机。
我建议的第一件事是你提供一个示例文件(并在此处发布URL)。
接下来要清楚地说明你正在使用什么命令行(并且所有变量都填入实际值!)。然后我们可以看到问题是什么,并重现它。否则一切都会被猜测。
现在,似乎对Zebra打印机的引用是用词不当,似乎您正在尝试生成一个已旋转的新PDF文件。这可能不是世界上最好的主意。如果可能的话,您应该继续使用原始PDF文件并更改打印设置以使其正常工作。
但是,假设由于某种原因不可能,那么如果你得到正确的参数,Ghostscript可以做到这一点。
第一点是-dEPSCrop
不会对PDF输入产生任何影响,因为它会影响EPS输入。
下一个; <</Orientation 0>> setpagedevice
实际上是一个无操作,默认的Orientation是0所以你已经将它改为默认值。设置为1 **,ight *有效果,但我对此表示怀疑。
PostScript碎片<<//AutoRotatePages /All>> setdistillerparams
几乎肯定与你想要的完全相反。这会导致Ghostscript尝试旋转页面,以便输出中的绝大多数页面都使文本水平运行。如果你有一个横向PDF文本几乎肯定已经是水平的(当然,在没有一个例子我无法分辨)。所以这不会做任何事情。
你可能想要<<//AutoRotatePages /None>> setdistillerparams
或更简单的-dAutoRotatePages=/None
。这会阻止pdfwrite设备在您不期望的情况下旋转页面。
当然,这仍然没有任何影响(除非我误读了批处理文件片段),因为它出现在输入文件名之后。因此Ghostscript将处理输入文件和切换到该点,然后处理-c开关引入的以下PostScript然后退出。 AutoRotatePages会影响它之后的任何输入,而不是之前的输入。