Skip to content
Snippets Groups Projects

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.sh 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. Also you can specify list of your custom printer in here-document at end of file.

Syntax is ("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.sh

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.