SDB:Printing Copies
在 openSUSE 上测试
情况
您希望多次打印相同的内容。
本文适用于 Linux 下 CUPS 版本高达 2.x,以及那里的传统过滤系统和后端。
如今的无驱动程序打印工作流程则大不相同。
不存在“仅仅打印复印件”这种说法
有几种本质上不同的方法可以多次打印相同的内容(模糊地称为“复印件”)。
获得多次打印的不同方法
例如,当打印一个文件file_to_print的 3 个“复印件”时,可以通过以下命令以三种本质上不同的方式完成:
打印作业参数中包含复印数量的单个打印作业
lp -d queue_name -n 3 file_to_print
这将生成一个打印作业,其中预期的复印数量是打印作业参数。
当复印数量是打印作业参数时,具体行为取决于各种条件,因此可能会发生意外的打印输出(这在技术上可能是正确的,但并非预期)。
如果打印机本身不支持自行打印内容多次(并且许多打印机不支持或不支持足够,请参阅下面的“装订复印件”),则打印作业处理程序(所谓的“打印过滤器”)需要为打印机生成请求的复印件。
当复印数量(n)仅是打印作业参数时,您可能只能打印相同的内容一次或n次(如预期)或n^2次,甚至n^3次或更多次,具体取决于实际评估该打印作业参数的次数(根本不评估、一次、两次、三次……)。
如果没有打印任何复印件,原因可能是预计打印机自行制作复印件,但实际上它没有这样做,请参阅下面的“cupsManualCopies”。
如果获得n^2个复印件,原因可能是首先打印过滤器制作复印件,然后打印机本身也制作复印件。
检查您的打印队列的 PPD 文件/etc/cups/ppd/queue_name.ppd查看其中是否有任何类型的复印件选项,如果有,则可能有助于在 PPD 文件中尝试这些选项。例如,请参阅 CUPS PPD 扩展:cupsManualCopies,其中摘录如下:
cupsManualCopies This boolean keyword notifies the RIP filters that the destination printer does not support copy generation in hardware. The default value is false. Example: *% Tell the RIP filters to generate the copies for us *cupsManualCopies: True
其中“RIP 过滤器”是指执行所谓的“光栅图像处理器”所做工作的打印过滤器(请参阅 Wikipedia:光栅图像处理器)。CUPS PPD 扩展:cupsManualCopies 中存在一个拼写错误,其中写的是“*cupsManualCopies: true”,但实际上应该是“*cupsManualCopies: True”,请参阅 https://github.com/OpenPrinting/cups-filters/issues/242
包含内容多次的单个打印作业
lp -d queue_name file_to_print file_to_print file_to_print
这将生成一个包含内容多次的单个打印作业,次数等于预期的复印数量。
将内容提交多次,次数等于预期的复印数量,可以避免可能发生的意外打印输出结果(如上所述)。
提交内容多次是否会明显浪费更多资源取决于具体情况。当打印过滤器为打印机生成复印件与打印机本身制作复印件时,使用的总体计算资源(即在生成打印作业的计算机上的计算资源以及打印机中的计算资源)可能没有太大差异。在后一种情况下,需要传输到打印机的数据较少,并且在非装订复印件的情况下(如下所述),打印机本身制作复印件可能会明显更快。
与复印数量相同的多个分离打印作业
lp -d queue_name file_to_print lp -d queue_name file_to_print lp -d queue_name file_to_print
这将生成与预期的复印数量相同的多个分离打印作业。
当将内容提交多次作为分离打印作业时,可能会发生其他用户的打印作业插入其中,因此其他用户的作业可能会出现在整个打印输出中。
将内容提交多次作为分离打印作业需要最多的资源,但通常这是从应用程序程序通过打印对话框提交内容多次的唯一可能方法。
装订复印件与未装订复印件
装订复印件意味着在打印文档的多个复印件时,它将打印每个复印件的所有页面,然后再打印下一个复印件。
因此,打印 3 个装订复印件的 5 页文档的打印页码为
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
而打印 3 个未装订复印件的 5 页文档将产生以下打印页码:
1 1 1 2 2 2 3 3 3 4 4 4 5 5 5
特别是廉价/弱打印机,如果提供内置的复印件功能,可能仅支持未装订复印件,而不支持装订复印件(例如,因为内置内存不足以将整个文档保留下来多次打印,但足以多次打印单个页面)。
请参阅 CUPS:命令行打印和选项 中的“打印多个复印件”,其中摘录如下:
Copies are normally not collated for you. Use the -o collate=true option to get collated copies: lp -n num-copies -o collate=true filename
双面打印与打印复印件相结合
启用双面打印的非装订复印件没有意义,因为第一张纸的正反面将打印第一页,因此此处仅描述装订复印件的双面打印。
双面打印奇数页可能很奇怪
如果使用双面打印打印 3 个装订复印件的 5 页文档,您可能会期望打印以下纸张:
page 1 on front side of 1. sheet of paper -+ page 2 on back side of 1. sheet of paper | page 3 on front side of 2. sheet of paper | first page 4 on back side of 2. sheet of paper | copy page 5 on front side of 3. sheet of paper | nothing on back side of 3. sheet of paper -+ page 1 on front side of 4. sheet of paper -+ page 2 on back side of 4. sheet of paper | page 3 on front side of 5. sheet of paper | second page 4 on back side of 5. sheet of paper | copy page 5 on front side of 6. sheet of paper | nothing on back side of 6. sheet of paper -+ page 1 on front side of 7. sheet of paper -+ page 2 on back side of 7. sheet of paper | page 3 on front side of 8. sheet of paper | third page 4 on back side of 8. sheet of paper | copy page 5 on front side of 9. sheet of paper | nothing on back side of 9. sheet of paper -+
如果打印机本身不支持自行打印装订复印件,则打印过滤器需要为打印机生成请求的复印件,然后生成的页面以打印 3 个装订复印件的 5 页文档通常是(如上所述):
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
在双面打印的情况下,如果没有任何“魔术”在每个第 5 页之后插入一个额外的空白页,以使背面不打印任何内容,这些页面可能会导致意外的打印输出。
page 1 on front side of 1. sheet of paper -+ page 2 on back side of 1. sheet of paper | page 3 on front side of 2. sheet of paper | first copy page 4 on back side of 2. sheet of paper | page 5 on front side of 3. sheet of paper -| page 1 on back side of 3. sheet of paper --| page 2 on front side of 4. sheet of paper | page 3 on back side of 4. sheet of paper | second copy page 4 on front side of 5. sheet of paper | page 5 on back side of 5. sheet of paper --+ page 1 on front side of 6. sheet of paper -+ page 2 on back side of 6. sheet of paper | page 3 on front side of 7. sheet of paper | third copy page 4 on back side of 7. sheet of paper | page 5 on front side of 8. sheet of paper -+ (nothing for back side of 8. sheet of paper)
如果没有这样的“魔术”,只有第三个复印件按预期打印,但第一个复印件的打印输出会中断,因为第二个复印件的第 1 页打印在第 3 张纸的反面,这就是为什么第二个复印件的打印输出也会中断,因为第 3 张纸同时属于第一个和第二个复印件。
将内容提交多次作为分离打印作业应该可以避免此问题(如上所述),因为在双面打印奇数页作为分离打印作业时,打印机将输出最后一页纸,无论其背面未打印任何内容。
通常,在双面打印奇数页时,可能会出现明显的延迟,直到打印机输出最后一页纸(仅打印正面),因为打印机可能会等待最后一页背面上的更多打印数据,直到打印机中的超时发生,让它认为打印作业已完成。通过适当的“打印作业完成”信号发送到打印机,不会发生这种延迟,但与打印机的通信在实践中并不总是完美。对于普通的非双面打印,通常不会注意到打印机在每个打印作业结束时的可能超时(如果发生),因为最后一页纸(打印了一些内容)通常会正常输出,因此您可以在不出现明显延迟的情况下获得完整的打印输出。对于非双面打印,延迟(如果发生)发生在最后一页纸输出后,直到打印机恢复到“准备好下一个打印作业”状态。
为了避免双面打印时出现此类问题,可以向“奇数”文档添加一个空的最后一页,使其页数为偶数。但在非双面打印的情况下,这样的空白最后一页可能会导致不必要地输出额外的纸张(这也非常奇怪)。
如果无法专门为双面打印调整“奇数”文档(例如,因为该文档是无法更改的 PDF),则一个“奇数”解决方法是首先以双面模式打印除最后一页之外的所有页面作为单个打印作业,然后以非双面模式打印最后一页作为分离的后续打印作业。使用该解决方法打印例如 3 个装订复印件时,可能更容易首先以双面模式连续打印除最后一页之外的所有页面三次,然后以非双面模式连续打印最后一页三次,最后手动将每个最后一页添加到“除最后一页之外的所有页面”打印输出中。
最终解决双面打印复印件的奇数解决方法可能是使用 PostScript + PDF 打印机(请参阅 SDB:Printer buying guide),该打印机正确支持打印复印件(特别是装订复印件)和双面打印,并带有来自打印机制造商的匹配 PPD 文件,以便可以从应用程序打印对话框中正确使用打印机的所有内置功能。
参见
相关文章
- Portal:Printing
- PostScript
- SDB:Printer 购买指南
- SDB:Landscape Printing
- SDB:Printing to PDF
- SDB:Print Settings with CUPS
- SDB:How to Report a Printing Issue
- SDB:Using Your Own Filters to Print with CUPS