CUPS pdf postprocess
This is a simple utility acting as postprocesor of cups-pdf virtual printer.
Requirements
-
Python 3 (should be trivial to modify for Python 2)
-
PyQt5
Setup
This script can be use either directly (e.g. via context menu) or through cups-pdf.
First copy file cups-pdf-postprocess.conf
to /etc/cups/ and edit it for your needs.
When invoked by
cups, the script does not have any knowledge about running X, so you have to
set atleast DISPLAY
(and probaly also XAUTHORITY
) variable.
Syntax is of printers section ("name of printer", ["command", "first argument"]),
(it will be
interpreted as part of Python list literal). There will be appended aditional
lp
-like parameters when acually executing command.
To use it through cups, install pdf-cups, setup a new virtual printer and
then modify /etc/cups/cups-pdf.conf
:
PostProcessing /path/to/cups-pdf-postprocess-your-wrapper.py
NOTE: Ubuntu requires modifying AppArmor settings to allow cups-pdf to execute this script by adding something like
/path/to/cups-pdf-postprocess-your-wrapper.py ux,
into cups-pdf profile.
WARNING: The script does not delete printed files, so files printed through cups-pdf
will stay where they were printed to (default path is /var/spool/cups-pdf/${USER}
).
It is up to you to delete them when needed. Easy way to do so might be to move
cups-pdf output directory to /tmp
so it gets deleted on each restart.
To add the script into context menu soft-link cups-pdf-postprocess-your-wrapper.desktop
into appropriate place for your desktop enviroment (in case of KDE4 this is
~/.kde4/share/kde4/services/ServiceMenus
). You may need to copy it and fix path
to shell wrapper.