Four pages on one sheet — and you see the sheet before you print it.
A free, open-source alternative to FinePrint. Runs on Windows on ARM as happily as on Intel.
Install the .msi and print. Setting up is the installation: it creates its
own printer along the way, and from then on Open-LeanPrint sits in every print
dialog on the machine like any other printer. Print to it, and the window comes up
with your document already in it — pick a layout, press Print.
A 40-page draft becomes five sheets at four pages a side, printed on both. The preview is the sheet, so nothing is a surprise: page through it, right-click a page you do not want, and print when it looks right.
What it saves you:
- Paper and toner, obviously — a stack of drafts turns into a handful.
- Reading time. Four pages on a sheet is a table of contents you can see at a glance; leafing through forty is not.
- The reprint. Wrong layout, page upside down, one page you forgot to drop — all of it visible before the printer starts rather than after.
- Fiddling. No driver to install, no settings to hunt through in three different dialogs, no account, nothing that phones home.
Booklets fold and staple properly, watermarks go across every sheet, and several documents can share one sheet instead of each starting a new one.
FinePrint and its kind install a virtual printer driver. Microsoft is phasing that whole category out: Windows Protected Print only permits the in-box IPP class driver, and on Windows on ARM, x64 print drivers are not emulated at all. So Open-LeanPrint ships no driver. It registers a local printer that Windows drives with its own IPP class driver, pointed at a loopback service — driverless, ARM64-native, and future-proof by construction. The reasoning in full: docs/ARCHITECTURE.md.
Plus:
- Pool several jobs onto shared sheets — three short memos become one 4-up sheet, not three.
- Drop or turn pages before printing — type a range, or right-click a page in the preview to remove or rotate it.
- Page borders — a thin frame around each page, so four pages on a sheet read as four pages rather than one crowded one.
- Save layouts as profiles and pick them again later.
- Duplex, including the short-edge flip that booklets need.
- Colour goes through. The virtual printer does not print, it hands the document to one that does, so it keeps colour rather than flattening it to grey on the way in.
- Live WYSIWYG preview that re-imposes as you change anything.
- Print and close — printing ends the job: the pool empties and the window goes away, while collecting carries on in the tray. Or save the imposed PDF instead.
- Hands-free mode — every job you print gets imposed and printed automatically, no window needed.
- Download the installer from the latest release and run it.
- Print something — anything — to Open-LeanPrint.
- The window comes up with it. Pick a layout, press Print and close.
That is the whole setup. No driver to approve, no configuration, no restart.
Already have PDFs? Drop them straight on the window instead.
Open-LeanPrint collects nothing and sends nothing — no telemetry, no update check, no server. It does handle your documents, because that is what it is for: PRIVACY.md says exactly where they go and how long they stay.
Free code signing is provided by SignPath.io, with a certificate from the SignPath Foundation. The installers are built by a GitHub Actions workflow from the tagged commit and signed from there, so a package can be traced back to the source it came from.
While that certificate is being arranged, releases carry a self-signed one instead. Windows will not recognise it until you say it should — the release notes explain the one command that does it. A self-signed certificate establishes that the files came from the same place, not who that place is; the point of the Foundation certificate is to remove that step.
Running from source instead:
dotnet run --project src/OpenLeanPrint.AppIt offers to add the printer on first start, just like the installed copy — answer yes and confirm the Windows prompt. Full walkthrough: docs/USER-GUIDE.md.
Everything the app does is scriptable:
openleanprint impose report.pdf out.pdf --nup 2x2 --paper A4 --margin 8 --gutter 6
openleanprint impose report.pdf book.pdf --booklet --pages 1-16
openleanprint print out.pdf --printer "Brother MFC-9332CDW Printer" --duplex short
openleanprint watch --nup 2x2 --printer "Brother MFC-9332CDW Printer" # hands-freewatch is the one that changes your day: print from any application, and a
4-up sheet comes out of the printer.
Requires only the .NET 8 SDK.
dotnet test # engine, capture, composition, printing
dotnet build OpenLeanPrint.Windows.sln # everything, including the desktop appThe imposition engine and the capture service build and run on Linux and macOS too; printing and the app are Windows-only and marked as such. To produce something copyable — one self-contained executable, or an installable MSIX:
.\scripts\New-SigningCertificate.ps1 # once
.\scripts\Build-Installer.ps1 -CertificateSubject "CN=Your Name" # .msi installer
.\scripts\Build-Msix.ps1 -CertificateSubject "CN=Your Name" # .msix, app only
.\scripts\Publish-App.ps1 # one loose .exeThe .msi is the one to hand to someone else: it installs to Program Files, creates the virtual printer, adds a Start-menu entry and starts Open-LeanPrint at login. An .msix cannot create the printer — MSIX forbids install-time scripts — so there the app asks once instead.
| Path | What |
|---|---|
src/OpenLeanPrint.Core |
Domain model and imposition engine. Platform-neutral, heavily tested. |
src/OpenLeanPrint.Capture |
Loopback IPP service, IPP codec, captured-folder watching. |
src/OpenLeanPrint.Capture.Host |
Console host that receives and stores print jobs. |
src/OpenLeanPrint.Compose |
Imposed sheets → output PDF, including watermarks. |
src/OpenLeanPrint.Print |
Output PDF → Windows printer (PDFium raster + spooler). |
src/OpenLeanPrint.App |
The WPF desktop app. |
src/OpenLeanPrint.Cli |
openleanprint: impose, print, watch, list-printers, sample. |
docs/ |
Architecture, user guide, and a record of how each part was verified. |
Capture, imposition, printing, the desktop app and packaging all work and are verified on Windows 11 ARM64. A Windows service holds the loopback port, so the printer works from system start, with nobody logged in and with no window open. 163 automated tests; CI builds and tests on Linux and Windows.
See docs/ROADMAP.md for what each milestone delivered and what is still open.
Contributions are welcome — see CONTRIBUTING.md. The imposition engine is the stable, well-tested core; printer compatibility reports are especially useful, since every driver has its own opinions.
MIT © Alexander Zarenko.
PDF rendering uses PDFium (BSD) via PDFtoImage (MIT), composition uses PdfSharpCore (MIT) and parsing uses PdfPig (Apache-2.0). Ghostscript and MuPDF are AGPL and are deliberately avoided so Open-LeanPrint can stay permissive.


