14.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 [4] 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 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.
14.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:
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.
Warning
Repair is a best-effort attempt and is no guarantee for success.
If PDF is encrypted, it is decrypted. QPDF is used for this step.
PDF is optimized with the
ps2pdfsystem command.
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.
Non-embedded/non-standard PDF fonts are embedded withbest-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.
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
pdf2psfilter as executed by CUPS/Ghostscript might result in missing text and annotations as explained in Step 1.
A final check is performed by reading the page properties of the PDF. If the check fails, a PDF optimization is performed as explained in Step 3.
You can enable/disable each step with the following configuration properties:
Configuration property |
Description |
|---|---|
print-in.pdf.optimize |
Set to |
print-in.pdf.invalid.repair |
Set to |
print-in.pdf.encrypted.allow |
Set to |
print-in.pdf.fonts.verify |
Set to |
print-in.pdf.fonts.verify.reject |
Set to |
print-in.pdf.fonts.embed |
Set to |
print-in.pdf.clean |
Set to |
print-in.pdf.prepress |
Set to |
See 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.