如何将包含大量 pdf 的 zip 文件直接发送到打印机?

如何将包含大量 pdf 的 zip 文件直接发送到打印机?

我经常收到一堆 PDF 文件,以单个 zip 文件的形式。我想将它们直接发送到打印机。

我发现了一个很好的脚本,它允许使用右键单击上下文菜单将 pdf 直接发送到打印机。

不打开 pdf 文件直接打印吗?

现在我想修改脚本,以便它能够解压文件,然后将 pdf 发送到打印机。我该如何实现呢?

答案1

如果你想要一个简单的“一行”,你可以使用-p以下选项unzip

-p 将文件提取到管道 (stdout)。
只有文件数据会被发送到 stdout,并且文件始终
以二进制格式提取,就像它们存储时一样(无需转换)。

因此,这是一个将输出传输到以下地址的问题lpr

unzip -p archive_with_lots_of_pdfs.zip | lpr

并且您可以轻松调整链接的脚本来使用该命令。

笔记-c选项是相似的

-c 将文件提取到标准输出/屏幕(“CRT”)。

但它打印文件名实际内容。这会破坏你的lpr命令,大概会打印乱码。

答案2

尝试这个:

mkdir -p files
unzip pdfs.zip -d files
lpr files/*.pdf
  1. 命令将创建目录
  2. 将 zip 解压到files目录
  3. 打印所有 pdf 文件

编辑,鹦鹉螺脚本:

#!/bin/bash
mkdir -p /tmp/unzip_files
unzip "$NAUTILUS_SCRIPT_CURRENT_URI" -d /tmp/unzip_files   #unzip selected files to tmp directory
lpr -r /tmp/unzip_files/*.pdf   #print and remove file

答案3

现在它开始工作了。必须使用“NAUTILUS_SCRIPT_SELECTED_URIS”,因为有多个文件。

#!/bin/bash 

current_nautilus_path=$(echo "$NAUTILUS_SCRIPT_SELECTED_URIS" | sed -e 's/%/\\x/g' -e 's_^file://__' | xargs -0 printf "%b") #get the URI variable from nautilus
mkdir -p /tmp/unzip_files "$current_nautilus_path" -d /tmp/unzip_files #unzip selected files to tmp directory 
lpr -r /tmp/unzip_files/*.pdf #print and remove file

相关内容