12.9. Driverless File Transfer Print

Driverless Printing by file transfer is one of the gateways to authenticated printing from devices belonging to unauthenticated anonymous users, where either native or IPP Everywhere printing support is lacking or where user trust cannot be enforced by a Single Sign-On User Domain. This situation is typical for a BYOD[32] context.

Web Print and Mail Print offer casual printing without a hassle, since users are familiar with either file uploading or email and no printer driver needs to be installed. Since rendering of the document content is not handled by a know-it-all printer driver, not all document types are supported. See Appendix G, Printable File Types for a list of supported types. Driverless File Transfer Print is also implemented in the SavaPage Android Print App and RESTful Print API.

Note

Mail Print uses 127.0.0.1 (localhost) as the IP address of the requesting user.

12.9.1. Processing Driverless PDF Transfer

PDF files received from Driverless File Transfer Print are validated, repaired and processed before admitted as SafePages. These are the processing steps:

  1. Uploaded PDF document is read to check validity.

    If the PDF is assessed as invalid by the PDF library used by SavaPage, a repair is executed with pdftocairo. If repair fails, the document is rejected.

    Note

    Although shown correctly as SafePages, PDF files might not have a completely valid PDF format. When these invalid PDFs are proxy printed, CUPS filtering may deliver Page Description Language (PDL) that incorrectly describes the PDF content. As a result, printed output will not be as expected. Text can be omitted, and in some cases we observed only a single blank page was printed. To prevent this situation, SavaPage tries to repair these files, which is a modest action with minor performance impact. Disclaimer: repair is a best-effort attempt and is no guarantee for success.

  2. If PDF is encrypted, it is decrypted. QPDF is used for this step.

  3. PDF font syntax is verified. If font errors are encountered, a repair is executed with pdftocairo, when not already executed in a previous step. When font errors persist, the PDF document is rejected.

  4. Non-embedded/non-standard PDF fonts are embedded with best-fit fonts available on the host system.

    Note

    This is because font embedding performed by CUPS/Ghostscript might result in missing text as explained in Step 1.

  5. PDF is cleaned by executing pdftocairo command (when not already executed in a previous step) and optionally a Ghostscript prepress command.

    Note

    This is because the pdf2ps filter as executed by CUPS/Ghostscript might result in missing text and annotations as explained in Step 1.

You can enable/disable each step with the following configuration properties:

Configuration propertyDescription

print-in.pdf.invalid.repair

Set to Y (default) or N to enable/disable repair of invalid PDF files with pdftocairo. When N, invalid PDF files are rejected.

print-in.pdf.encrypted.allow

Set to Y (default) or N to enable/disable decryption of encrypted PDF files with QPDF. When N, encrypted PDF files are rejected.

Important: this property also applies when Section 12.10.2, “Printing Encrypted PDF” with a printer driver.

Also see Section 4.11.14.8, “SafePages”.

print-in.pdf.fonts.verify

Set to Y (default) or N to enable/disable PDF font syntax validation. When Y, PDF files are checked with pdffonts system command. When font syntax errors or warnings are encountered a repair is executed with pdftocairo (when not already executed in a previous step). When font errors persist, the PDF document is rejected.

print-in.pdf.fonts.embed

Set to Y (default) or N to enable/disable embedding of non-embedded/non-standard PDF fonts by executing pdftocairo command (when not already executed in a previous step).

print-in.pdf.clean

Set to Y (default) or N to enable/disable PDF cleaning by executing pdftocairo command (when not already executed in a previous step).

This is a replacement for the deprecated "proxy-print.repair.enable" property. See Section 4.11.10, “Proxy Print”.

print-in.pdf.prepress

Set to N (default) or Y to disable/enable PDF cleaning by executing gs -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress command.

Table 12.8. Driverless PDF Transfer Processing Configuration Properties


See Section 4.11.15, “Config Editor” on how to set this property.

Note

The pdftocairo and gs command embeds all fonts, even standard PDF fonts.

Tip

Driverless PDF Transfer statistics are shown on the Admin Web App Dashboard. The final result of a Driverless PDF Transfer Print on the display of fonts is shown in the SafePages Document Details popup dialog.



[32] Bring Your Own Device (BYOD) is the policy of permitting employees to bring personally owned mobile devices (laptops, tablets, and smart phones) to their workplace, and use those devices to access privileged company information and applications. The term is also used to describe the same practice applied to students using personally owned devices in an educational setting.