This feature allows printers connected to the client to show as virtual printers on the server so that printing can transparently be forwarded back to the client’s printer(s).
This functionality shares most of the code with the file transfers, as the print job is first rendered to a file before being sent to the client.
apt-get install cups-filters cups-common cups-pdf python3-cups to install the missing piecessys group: gpasswd -a $USER syslpadmin group: usermod -a -G lpadmin $USER0700 permissions: chmod 700 /usr/lib/cups/backend/xpraforwarder10.10 (aka Yosemite) prevents the xpra cups backend from connecting to the xpra server, to fix this run: sudo sh -c 'echo "Sandboxing Relaxed" >> /etc/cups/cups-files.conf';sudo launchctl stop org.cups.cupsdHow does this work? The xpra client exports the list of local printers to the xpra server, the server can then create the same list of virtual printers using the lpadmin command.
Those virtual printers are actually PDF or postscript scripts.
When the user sends a print job to one of those virtual printers, the script captures the rendered document and forwards it to the client who owns this particular virtual printer. The xpra client then sends this PDF / postscript document straight to the actual printer.
The HTML5 client is written in Javascript so it does not have access to the printer device information and the PDF document is presented for printing via the standard browser’s print dialog.
Diagnostics
Print.exe on MS Windows and as Xpra.app/Contents/Helpers/Print on MacOS./xpra/platform/printing.py /path/to/yourfile.pdf-d printing debug flags (see debug logging)sudo journalctl -f -t xpraforwarder)cupsctl --debug-loggingIssues