作为 cups-pdf 打印机的长期用户,我始终保留默认的输出文件夹设置:$HOME/PDF(或相同的 /home/$USER/PDF)。
现在我想使用自定义位置来保存生成的 PDF,但修改配置文件 (/etc/cups/cups-pdf.conf) 后根本没有输出。帮忙吗?
答案1
问题出在 apparmor 上,而不是 cups 或虚拟打印机驱动程序上。
对于任何想要享受“一键式”打印为 PDF 便利的人,可以使用其旧名称安装该软件包:
sudo apt install cups-pdf
或者更新的版本:
sudo apt install printer-driver-cups-pdf
然后要更改默认输出文件目标,可以编辑配置文件:
sudo gedit /etc/cups/cups-pdf.conf (Use gksu or gksudo in place of sudo if preferred.)
在线上:
Out ${HOME}/PDF
根据需要更改文件夹位置。例如:
Out ${HOME}/Desktop
Out ${HOME}/print/pdfs
Out /home/username/pdf
(如果粘贴示例行,请仅使用一行,如原始文件。)突出显示位置部分之后$
,复制,然后保存并关闭文件。接下来,打开 apparmor 配置文件:
sudo gedit /etc/apparmor.d/usr.sbin.cupsd
找到靠近底部的两行旧默认路径,{HOME}/PDF
@{HOME}/PDF/ rw,
@{HOME}/PDF/* rw,
在每一行上,突出显示@
和结尾之间的所有内容/
,并粘贴刚刚复制的新 dirspec。检查以确保只有两个路径被更改,并且没有插入丢失或多余的字符或空格。(如果不确定,请事先制作备份副本,并记住ctrlz撤消是您的朋友。)例如。
@{HOME}/Desktop/ rw,
@{HOME}/Desktop/* rw,
保存、关闭并重新启动,然后测试打印。应该可以。
答案2
对于拥有符号链接文件夹的人来说,这将很有帮助。除了在 /etc/cups/cups-pdf.conf 中设置上述自定义文件夹外,还请执行以下操作。在“K”Ubuntu 20.04 及更高版本中(以下解释是在 Kubuntu 21.04 中实现的),/etc/apparmor.d/usr.sbin.cupsd
不应修改 apparmor ( ) 中的默认文件夹设置。默认值如下,请保留原样。
@{HOME}/[^.]*/{,**/} rw,
@{HOME}/[^.]*/** rw,
在我的例子中,我有一个单独的 ext4 分区 /mnt/data/username,用于托管用户目录,例如文档、下载、音乐、视频、公共、模板、图片和 VirtualBox VM。我将这些文件夹符号链接到/home/username/
以下示例。
ln -s /mnt/data/username/Documents /home/username/Documents
因此,对于 cups-pdf 打印到文件夹 PDF,我的在 中/mnt/data/username/Documents/PDFs
。
我的设置如下:在/etc/cups/cups-pdf.conf
设置中
Out ${HOME}/Documents/PDFs
保留/etc/apparmor.d/usr.sbin.cupsd
默认值。运行
sudo dpkg-configure apparmor
在出现的对话框中,添加/mnt/data/
(注意末尾的“/”)作为附加 ${HOMEDIRS) 并点击确定。这就是需要做的全部工作。
我需要将我的用户目录放在 /mnt/data/username/ 中,因为我与使用相同用户名和 UID/GID 安装的 ArchLinux Gnome40 共享相同的文件夹。
如需参考并了解原因,请参阅以下链接:
http://manpages.ubuntu.com/manpages/trusty/en/man5/apparmor.d.5.html
https://www.mail-archive.com/[电子邮件保护]/msg1701831.html
https://www.mail-archive.com/[电子邮件保护]/msg1701828.html
https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/447292
https://forums.whonix.org/t/apparmor-exception-for-shared-folder-on-guess/656