我有一个 shell 脚本,它将 PDF 文件作为参数并使用附加的打印机特定选项打印它。如何将此脚本添加为可以从 GUI 中选择的虚拟打印机?
shell 脚本是一个手动双面脚本,它接受一个 PDF 文件,打印偶数页,使用 zenity 给用户提示,要求用户翻转页面,然后打印奇数页。
我目前的工作流程是:
my_duplex_script tmp.pdfrm tmp.pdf有什么办法可以使它成为:
注意:这是在 Linux mint 13 cinnamon 上。我试过了,gnome-manual-duplex但对我不起作用。
我可以从中打印到 PDF 文件的 GUI 对话框

my_duplex_script
#!/bin/bash
lp_args=
while getopts o: opt
do
case "$opt" in
o) lp_args="$lp_args -o $OPTARG" ;;
\?) echo >&2 Invalid argument; exit 1 ;;
esac
done
shift `expr $OPTIND - 1`
file=$1
page_count=$(pdfinfo "$file" | grep …Run Code Online (Sandbox Code Playgroud) 问题描述 - 无法打印
设备名称:HP LaserJet M1005 MFP USB 打印机
操作系统:Linux 3.8.13-1-MANJARO #1 SMP PREEMPT x86_64 GNU/Linux
错误说明:
"Processing - Not connected?"到目前为止我尝试过的:
我不知道此时该怎么办。有人可以告诉我该怎么做或至少在哪里看下一步有机会解决我的问题......
我看过很多博客文章,描述了使用 CUPS 向 iOS 设备提供非打印打印机的过程。但是,我一直在努力寻找是否有人想出如何打印到装有 Airprint 服务器的打印机。
特别是,我有一个 Brother HL-2340DW,它在 iDevices 上工作得非常出色。如果我正确理解 Airprint,iOS 不需要知道任何特别的东西来打印到所述打印机。它或多或少地在打印机上通过 IPP 吐出 PDF,然后打印机完成它的工作。我在 iOS 中获得的唯一配置选项是我是否想要双面打印(默认为长边打印,或者打印机的默认双面打印选项)和纸张尺寸(即 letter 与 a4)。
我不想做的是安装 Brother 的二进制驱动程序(我不能在 OpenBSD 上安装),这样我就可以说“BR-3”或他们使用的任何专有打印机控制语言。虽然我知道他们的驱动程序会在打印选项方面给我更大的灵活性,但实际上我将使用这台打印机的默认设置。从这个意义上说,更有限的 Airprint 功能是完美的。
有没有人成功地获得了各种 unix 打印系统(最好是 CUPS)中的一个来将打印作业发送到 Airprint 打印机?由于 IPP Everywhere 似乎仍然是一个梦想,因此支持 Airprint 的打印机似乎是基本打印支持的一个不错的目标,不是吗?或者 Airprint 协议是否比我想象的更专有/混淆?
我有一个佳能MG6450具有Wi-Fi功能以及最先进的最新Arch Linux的安装与cnijfilter-MG4200 3.80-1 安装。我可以在打印对话框中看到打印机(有时需要一秒钟才能显示,大概是因为它被自动发现),我可以选择它,并且在单击“确定”时没有收到错误消息。然而,打印机似乎完全无视这一切。
我也试过通过 USB 连接。之后,打印对话框没有自动检测到打印机,但它被检测到system-config-printer,我能够毫无问题地进行配置和打印。但是能够无线打印会非常好。
似乎一些致命的打印错误既没有出现在打印对话框中,也没有出现在system-config-printer. 它们都简单地将打印机状态报告为“空闲 - 渲染完成”。但是,在转到CUPS 网络界面并单击打印机后,我终于得到了一个提示 - 在每个打印作业之后都是以下消息:
“PPD 版本 (5.2.11) 与 Gutenprint 5.2.12 不兼容。请以管理员身份运行 `/usr/bin/cups-genppdupdate'。”
好吧:
$ sudo /usr/bin/cups-genppdupdate
/etc/cups/ppd/Canon-PIXMA-MG6450.ppd: no valid candidate for replacement. Skipping
/etc/cups/ppd/Canon-PIXMA-MG6450.ppd: please upgrade this PPD manually
Unable to retrieve PPD file for /etc/cups/ppd/Canon-PIXMA-MG6450.ppd!
Failed to update any PPD files
Run Code Online (Sandbox Code Playgroud)
现在我看看是否有任何地方有兼容的 PPD。佳能IJ 打印机驱动程序 Ver. 4.00 for Linux有 MG6400 和 MG6500 的 PPD …
我正在一个小型局域网上调试一些打印问题,虽然我很确定我面临的问题与杯子本身无关,但我一直在修改 CUPS 和我的打印机(柯尼卡美能达 Bizhub C224E)的打印协议和 C3350) 明白。
这让我想知道:这只是知道您的打印机支持哪些协议的问题,还是它们之间有任何层次结构?从我所做的广泛阅读中,我似乎能够推断出 LPD 相当古老,而 IPP(14) 是“新来的孩子”,但是这个新协议是否提供了真正的好处?
如何从命令行打印已经缩放到 a4 尺寸的 SVG?我尝试使用lpr,但打印机只是打印出文件的实际 XML,这不是我想要的。
是否可以从命令行保留和释放 CUPS 打印作业?怎么做?
我试过cupsenable:
sudo cupsenable --release myprinter
Run Code Online (Sandbox Code Playgroud)
但它没有用。
我有 CUPS 并使用一个程序来生成我想要打印的文档的原始 PCL 格式。
我打印纯文本文件没有问题,lp filename但是当我提供一个包含 PCL 或 ESC/P 转义序列的文件时,我将立即获得此新打印作业的完成状态 - 没有打印机反应。尝试使用以下每个方法时也会发生同样的情况:
lpr -l filename
lp -o raw filename
lp -o document-format=application/octet-stream filename
lp -o document-format=application/octet-raw filename
lp -o document-format=application/octet-raster filename
Run Code Online (Sandbox Code Playgroud)
在 man 和 cups 文档中都找不到在打印命令中使用定义的过滤器/驱动程序类型(发送直接 pcl 或 esc/p)打印文件的方法。
尝试使用两台 HP 打印机 DeskJet 640C 和 D2460 进行打印。
部分从我的printers.conf,我认为可能是相关的:
...
Type
Filter application/vnd.cups-raw 0 -
Filter application/vnd.cups-raster 100 rastertogutenprint.5.2
Accepting Yes
...
ErrorPolicy stop-printer
...
Run Code Online (Sandbox Code Playgroud)
我的 D2460 打印机 ppd 文件中我认为可能相关的部分:
...
*TTRasterizer: Type42
...
*hpPrinterLanguage: "lidil" …Run Code Online (Sandbox Code Playgroud) 我尝试使用 apt-get remove cupsd 但我在不同的位置发现了它的痕迹,它仍在运行和监听。我怎样才能从我的机器上完全撕掉它?可以去掉杯子的dpkg吗?
我正在使用薄荷 17
Linux 用户虚拟机 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:08:14 UTC 2014 i686 i686 i686 GNU/Linux
virtual-machine # netstat -an | more
unix 2 [ ACC ] STREAM LISTENING 15350 /var/run/cups/cups.sock
virtual-machine # netstat -tulpn
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 2711/cupsd
tcp6 0 0 ::1:631 :::* LISTEN 2711/cupsd
# find / -name cups
/run/cups
/etc/ufw/applications.d/cups
/etc/init.d/cups
/etc/default/cups
/etc/cups
/usr/lib/cups
/usr/share/doc/cups
/usr/share/linuxmint/common/artwork/cups
/usr/share/doc-base/cups
/usr/share/cups
/var/spool/cups
/var/lib/doc-base/omf/cups
/var/lib/doc-base/documents/cups
/var/log/cups
/var/cache/cups
# apt-cache pkgnames cups
cups-driver-gutenprint …Run Code Online (Sandbox Code Playgroud) cups ×10
printing ×7
command-line ×3
lpr ×2
printer ×2
arch-linux ×1
canon ×1
hplip ×1
ipp ×1
linux-mint ×1
lpd ×1
shell-script ×1
svg ×1
wifi ×1