CUPS 打印非常复杂的 PDF 文件

CUPS 打印非常复杂的 PDF 文件

我们需要定期打印的 PDF 来源之一是规格。PDF 的背景非常复杂,渲染速度很慢。但问题是文档最终会达到 80 到 100 MB,有时甚至更大。

到目前为止,我发现如果将文件栅格化并以此方式转储到打印机,打印机可以始终打印一页。所以,好吧,我只会打印一页,并选择栅格化输出的选项。这种方法效果很好,但对于大型 PDF 来说,这是一种超出耐心的手动干预。

我的问题是:

  1. 是否有人解决了这个问题并创建了一个脚本或插件,可以以光栅化形式一次打印一页。

  2. 假设没有我可以使用的脚本,哪些方法和工具可以帮助我创建脚本来执行此操作。

我们使用的环境是 Slackware 14.2。此外,由于打印机已联网,我们确实尝试从 Windows 10 机器进行打印,并且在那里遇到了同样的问题。该打印直接路由到打印机。解决方案实际上应该在 Linux 空间中,因为我们根本不使用 Windows。

答案1

您可以使用以下命令从命令行打印:

#!/bin/bash

FLAGS="" # whatever you need to make the output suitable for the printer

PAGES=$(pdfinfo file.pdf | grep Pages: | awk '{print $2}')


for i in $(seq 1 $PAGES)
do
  lp $FLAGS -P $i file.pdf
done

除了直接使用 lp 之外,您还可以通过 或其中一个转换(也可以使用 来创建图像)来传输 file.pdf pdftopdfpdf2ps这些pdftoppm | ...过滤器可能会在 file.pdf 到达 cupfs 过滤器和打印机之前对其进行简化。

相关内容