PrintPDF is a macOS virtual printer that saves print jobs as PDF files. During setup, each user chooses their own destination folder. The destination can be a local folder, an iCloud Drive folder, or a folder managed by a sync provider such as Google Drive or Dropbox.
PrintPDF 1.2.2 is signed with Apple Developer ID and notarized by Apple for direct macOS distribution.
Its main advantage over RWTS PDFwriter is that each completed PDF is moved as a real file directly into the folder selected by the user. RWTS PDFwriter's utility instead creates a symbolic link from the chosen location to its spool folder. PrintPDF does not use a symbolic link for the destination.
PrintPDF is a modified fork of RWTS PDFwriter by Rodney I. Yager. RWTS PDFwriter was based on Lisanet PDFWriter by Simone Karin Lehmann, which was based on CUPS-PDF. See NOTICE.md for attribution and change information.
- macOS 12 or newer
- An administrator account for installation
- Intel or Apple Silicon Mac
PrintPDF 1.2.2 is distributed as a Developer ID signed and Apple notarized installer package. Download it only from the official GitHub release.
- Download
PrintPDF.pkgfrom the latest GitHub release. - Optionally verify it against the published SHA-256 checksum.
- Double-click
PrintPDF.pkgand complete the installer. - PrintPDF Utility opens automatically. Choose where PDFs should be saved.
- Print from any application and select PrintPDF as the printer.
Because the release is Developer ID signed and notarized by Apple, a normal macOS installation should not require the previous unsigned-package Open Anyway workaround.
The earlier 1.2.1, 1.2, 1.1 and v1.0 releases are retained. v1.0 is
the historical unsigned release.
The destination can be changed later by opening PrintPDF Utility from the printer's Utility panel in System Settings → Printers & Scanners.
Print jobs are first written to a private per-user CUPS spool folder. A small per-user LaunchAgent then moves completed PDFs into the selected destination. Existing files are never overwritten; PrintPDF adds a numeric suffix when a filename already exists.
PrintPDF 1.2.2 also monitors delivery health. The mover watches the spool folder
and runs the moment a new PDF appears, with a one minute fallback check, logs
activity to ~/Library/Logs/PrintPDF.log, and shows a macOS notification when a
generated PDF cannot be delivered.
A separate health agent runs every 30 seconds and warns if the PrintPDF queue is missing or disabled, the backend is unavailable, a print job stays queued for more than 60 seconds without producing a PDF, the destination folder cannot be used, the mover agent is not running, or finished PDFs have been waiting in the spool folder for more than two minutes. Because a mover that is not running cannot report its own failure, the health agent also reloads the mover when it finds it missing. Each problem is reported once, and is remembered and cleared independently so that one problem never hides another.
PrintPDF works locally. It does not upload documents or include analytics. If a cloud-synced destination is selected, that provider's software handles syncing.
Install the full Xcode application, accept its licence, and run:
./build/buildscript.shThe unsigned installer is created as PrintPDF.pkg in the repository root.
For a signed release, the repository also includes the manual notarization
workflow used for the official distribution package.
Open PrintPDF Utility and select Reveal Uninstall Script, then run the script. Uninstallation does not delete PDFs already saved in the destination.
PrintPDF is free software distributed under the GNU General Public License, version 2. The complete licence is in LICENSE. Anyone distributing a compiled package must also make the complete corresponding source available under the same licence.