我正在使用 Ubuntu 12.04 并成功安装了 Wi-Fi 打印机,但我的问题是:如何一次打印多个文件?我的意思是,我的文件夹中有许多 PDF 或文本文件,我想将它们直接发送到打印机,而不是在文件查看器中逐个打开,然后打印,然后重复整个过程很多次/:
右键单击文件或在文件菜单中,我甚至看不到打印选项。
谢谢你!
答案1
这个问题的解决方法很简单。转到所需文件夹,然后在终端中执行:
for FILE in *.pdf ; do lpr "$FILE" ; done
答案2
创建文件:~/.local/share/applications/print.desktop 输入:
[Desktop Entry]
Encoding=UTF-8
Name=Print Directly
Comment=Print file directly with default printer.
Exec=lp %f
Type=Application
Icon=/usr/share/pixmaps/gnome-applets.png
MimeType=text/plain;text/pdf;application/pdf;application/x-pdf
右键单击任何 pdf 文件,在“打开方式...”中查看 pdf 文件可用应用程序的扩展列表。找到“直接打印”条目并添加关联。从现在开始,您可以右键单击任何 pdf 文件(或组),并使用 lp 命令打印它们在您的默认打印机上。如果您想做实验,请安装CUPS-PDF打印机,并在打印机设置中将其设置为默认。
sudo apt-get install cups-pdf
您将把测试文件“打印”到~/PDF 文件夹中。
答案3
我已经编写了一个脚本,可以将所需的文件发送到默认打印机:您可能需要修改它以选择folder
文件所在的,然后运行一次,.pdf
然后运行.txt
:
find /home/mike/KeyGuides/ -type f -iname '*.txt' -print0 | while IFS= read -r -d '' f; do lpr "$f"; done
。它确实有效,因为我刚刚测试过它;只需确保所需的打印机设置为默认打印机即可。
如果您有任何问题,我会看看是否可以根据需要进行修改。(如果需要,您可以使用 lpr 的其他选项 - 请参阅man lpr
)它应该适用于大多数打印机 - 它可以成功用于我的 Canon IP4700。
此版本的脚本还会将每个打印的文档移动到一个目录(您可以必须已创建的新文档),这样当脚本运行时,只会打印新文档:
find /home/mike/Duck/ -type f -iname '*.txt' -print0 | while IFS= read -r -d '' f;
do lpr "$f" && mv "$f" /home/mike/Duck/printed/ ; done
答案4
CUPS 的最新版本增加了直接打印 pdf 的功能。11.10 及更新版本(也可能是更旧版本)都具有此功能。
另一种方法(我将其用于双面打印仿真程序包)是使用“打印到文件”来处理所有打印作业,并将它们放在一个文件夹中,该文件夹实际上将成为您的个人打印队列。一旦它们进入该文件夹,您就可以在需要时打印部分或全部,并在打印完成后将其删除。
这还有一个额外的好处,就是允许您在发生卡纸等情况后重新运行作业,而无需从头开始重新创建。它还允许您继续工作而不必停下来管理您的打印机。
如果您愿意,您可以编写一个小脚本,该脚本将在后台运行并开始打印出现在打印队列中的内容。如果您执行任何这些操作,您可能希望命名打印作业,以便它们按照您希望打印的顺序在队列中排序。我只使用 00 ... 99 作为名称。
对于文本文件,请留意那些可能有长行的文件。CUPS(至少默认情况下)不会为您换行或设置合适的页边距。
我的双面打印系统的功能比您要求的要多得多,但可能会给您一些启发。值得注意的是,它有两个小的辅助脚本 dprint 和 dprintm,它们接收文本并在将其发送到打印机之前对其进行一些处理。
http://sourceforge.net/projects/duplexpr/