我们需要定期打印的 PDF 来源之一是规格。PDF 的背景非常复杂,渲染速度很慢。但问题是文档最终会达到 80 到 100 MB,有时甚至更大。
到目前为止,我发现如果将文件栅格化并以此方式转储到打印机,打印机可以始终打印一页。所以,好吧,我只会打印一页,并选择栅格化输出的选项。这种方法效果很好,但对于大型 PDF 来说,这是一种超出耐心的手动干预。
我的问题是:
是否有人解决了这个问题并创建了一个脚本或插件,可以以光栅化形式一次打印一页。
假设没有我可以使用的脚本,哪些方法和工具可以帮助我创建脚本来执行此操作。
我们使用的环境是 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 pdftopdf
。pdf2ps
这些pdftoppm | ...
过滤器可能会在 file.pdf 到达 cupfs 过滤器和打印机之前对其进行简化。