我真的希望我能接受两个答案,因为如果没有@Kurt Pfeifle 对 Mac 细节的所有帮助以及仅了解打印机驱动程序和文件位置,我认为我无法做到这一点。但这就是我所做的:
从 codepoet cups-pdf-for-mac-os-x下载源代码。(对于非 Mac 用户,您可以查看http://www.cups-pdf.de/)自述文件非常详细,如果您仔细阅读所有说明,它会起作用,但是我在获取所有内容时遇到了一点麻烦这些碎片,所以我将准确地概述我所做的事情,以期为别人省去一些麻烦。为此,包含源代码的目录称为“cups-pdfdownloaddir”。
按照自述文件的规定编译 src 文件夹中包含的 cups-pdf.c:
gcc -09 -s -lcups -o cups-pdf cups-pdf.c
可能会有警告:ld: warning: option -s is obsolete and being ignored
,但这对我来说没有问题。将二进制文件复制到 /usr/libexec/cups/backend。您可能必须使用该sudo
命令,该命令将提示您输入密码。例如:
sudo cp /cups-pdfdownloaddir/src/cups-pdf /usr/libexec/cups/backend
另外,不要忘记更改此文件的权限 - 它需要 root 权限(700),可以在将 cupd-pdf 移动到后端目录后使用以下内容进行更改:
sudo chmod 700 /usr/libexec/cups/backend/cups-pdf
编辑 /cups-pdfdownloaddir/extra/cups-pdf.conf 中包含的文件。在“PDF 转换设置”标题下,在 GhostScript 下找到一行读取#GhostScript /usr/bin/gs
. 我没有取消注释以防万一我需要它,只是在它下面添加了一行Ghostscript /usr/bin/pstopdf
. (这些修改中的任何一个都不应有前导 #)
在没有取消注释的情况下,在 GSCall 下找到#GSCall %s -q -dCompatibilityLevel=%s -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile="%s" -dAutoRotatePage\
s=/PageByPage -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dPDFSETTINGS=/prepress -c .setpdfwrite \
-f %s
再次读取的行,在此我添加了行GSCall %s %s -o %s %s
在 PDFVer 下找到读取的行并将其#PDFVer 1.4
更改为PDFVer
,没有空格或后面的字符。
现在保存并退出编辑,然后使用以下命令将此文件复制到 /etc/cups
sudo cp cups-pdfdownloaddir/extra/cups-pdf.conf /etc/cups
在文本编辑器中编辑时要小心,因为 UNIX 和 Mac 环境中的换行符不同,可能会破坏脚本。你总是可以使用 perl 命令来删除它们,但我很偏执,不想一开始就处理它。
您现在应该能够打开一个程序(例如 Word、Excel 等)并选择文件 >> 打印并找到一个名为 CUPS-PDF 的可用打印机。打印到这台打印机,默认情况下,您应该在 /var/spool/cups-pdf/yourusername/ 中找到您的 pdf。
*此外,我认为这可能会有所帮助,因为它对我有帮助:如果按照这些说明搞砸了,您需要重新开始/摆脱它,为了卸下驱动器,您需要 (1) 卸下杯子-pdf 后端从/usr/libexec/cups/backend
(2) 删除 cups-pdf.conf 从/etc/cups/
(3) 进入系统偏好设置>>打印和传真并删除 CUPS-PDF 打印机。
这就是我为自己成功设置 pdf 后端/过滤器的方式,但是自述文件中包含更多详细信息以及有关自定义的其他信息。希望这对其他人有帮助!