1

使用 GhostScript (V9.05) 打印不同大小的 PDF 时遇到问题。

有问题的 PDF 是 A3 横向,但是当使用以下命令行参数使用 ghost 脚本打印时,结果会以 A4 纵向打印并截断一半的内容。

命令行参数:

"-sDEVICE=mswinpr2 -dPDFFitPage -dPrinted=false -dNoCancel -dBATCH -dNOPAUSE -sOutputFile="\spool\HP LaserJet P2050 系列 PCL6 (A4)" "C:\Users\dmeggs\AppData\Local\Temp\iPlan_Printing_k4gjaoip.pdf “”

我尝试了许多参数组合,大多数似乎都没有效果。理想情况下,我希望打印机根据 PDF 属性打印 PDF,因为这将用于打印 A4、A3、纵向和横向文档。

谢谢丹

4

2 回答 2

2

我假设打印机是A4打印机?为了让 GS 正确缩放页面,您需要告诉它页面大小是多少。它无法从打印机名称中分辨出来。尝试设置 -sPAPERSIZE=a4 -dFIXEDMEDIA

这将媒体设置为 A4,并告诉 GS 它不能更改,然后 -dPDFFITPAGE 开关将通过缩放使 PDF 媒体请求适合声明的媒体。

如果这不起作用,那么我需要查看您的 PDF 文件。

于 2012-06-26T10:51:08.540 回答
2

添加为新答案,因为它太大而无法发表评论。

如果 pswrite 和 epswrite 的输出有效,则打印机是 PostScript 打印机。

Pdfwrite 生成 PDF 文件,所以假设您不想这样做,因为输入是 PDF 文件 :-) 有些 PostScript 打印机实际上也可以打印 PDF 文件,但这比较不寻常。

而不是使用 psweite(或 epswrite),我建议您使用 ps2write(它将生成 PostScript 语言级别 2 作为输出)并将生成的文件发送到打印机。

在理想情况下,您的打印机将根据 PostScript 程序中的介质请求进行介质选择),但并非所有打印机都管理此操作。部分原因是如果有多种介质可用,打印机并不总是知道哪个介质在哪个纸盘中。

但是,您可以编写相当简单的 PostScript 代码,您可以将其添加到文件中,这样您就可以确定请求的页面大小。假设您知道如何控制打印机中的纸盘/介质选择,您可以让 PostScritp 程序为您执行此操作。

不幸的是,我无法为您提供有关如何执行此操作的详细信息,因为这在很大程度上取决于特定的打印机。

于 2012-06-27T07:13:30.570 回答