旧的 PostScript 打印机,带有大图像的文档产生空白页

旧的 PostScript 打印机,带有大图像的文档产生空白页

我有一个 PDF 文档,其中包含非常大的图片(高质量、高 DPI,占满整个页面)。我想用我的 HP LaserJet 2200dn 打印它,但我得到的不是图片,而是空白页。我认为这是因为我的打印机没有足够的 RAM。

我该怎么做才能打印此 PDF?

我使用的是 Debian 不稳定版本,带有此打印机的默认驱动程序。我使用的是网络打印服务器(HP Jetdirect 服务器,与打印机相连)。

更新:同样的问题也发生在稍好一点的 HP Laserjet 4100dtn 上。

答案1

HP Laserjet 2200dn 也应该支持 PCL 5 驱动程序,PS->PCL5 的处理将在桌面/服务器上完成,并且生成的 PCL5 文件将更小,以方便打印机处理。

另一个选项是使用 pdf2ps 进行转换,并在服务器中重新处理 ps 以在发送到打印机之前降低图像 dpi。

刚刚发现一个降低pdf分辨率的例子:

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

http://www.ubuntugeek.com/ubuntu-tiphowto-reduce-adobe-acrobat-file-size-from-command-line.html

答案2

以下是我解决问题的方法。但我不明白为什么它有效。

首先,我使用 将所有页面转储到 600DPI png 文件中ghostscript。请注意,在我的例子中,文档是黑白的,因此在此调用中选择的设备反映了这一点:

gs -sDEVICE=pnggray -r600 -o pages-%d.png input.pdf

然后使用 将每个单幅图像转换为单个 PDF 文件imagemagick。这实际上是一个相当快的操作,因此不值得尝试将其并行化(使用GNU Parallel或类似软件)。

for file in *.png; do convert "$file" "${file/png/pdf}"; done

然后我使用以下方法将 PDF 文件连接成一个文件pdftk(其他工具可能也可以,但这是我已经安装的工具):

pdftk pages*.pdf cat output output.pdf

生成的output.pdf文件大小与输入文件大致相同,看起来不错,而且(最重要的是)可以用我的打印机打印……但缺点是,不知何故我的打印机在打印前要处理每页约 5 分钟。反正我把打印留了一晚,所以我不在乎寻找更好的选择。

所以我所做的或多或少是重新压缩所有页面。

相关内容