Conversation
Start a modern, lightweight, open-source FinePrint alternative designed to
run on Windows on ARM (ARM64) as well as x64 by avoiding third-party print
drivers entirely (loopback IPP + in-box IPP class driver; see docs).
This first increment delivers the platform-neutral, unit-tested core:
- Domain model: SourcePage, PrintDocument, PrintJobPool (print-job pooling
/ "summarise print jobs").
- Imposition engine:
- NUpImposer: N-up grids (2-on-1, 4-on-1, arbitrary rows x cols), margins,
gutters, cell order (row/column major), scale modes (fit/fill/stretch/
actual), auto-rotate to maximise page size within a cell.
- BookletImposer: saddle-stitch page reordering, padded to multiples of 4.
- Geometry in PostScript points, top-left origin.
- 21 xUnit tests, green on Linux/macOS/Windows.
- Docs: README, ARCHITECTURE (capture strategy and why driverless), ROADMAP.
- CI workflow building/testing the core on push.
The Core has no Windows dependencies so it stays testable on any OS; the
Windows capture/render/app layers are scaffolded on the roadmap.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WaQweBHHGjM9uaKneNS1wu
Owner
Author
|
Closing: OpenLeanPrint now lives in its own dedicated repository at azitc-ac/OpenLeanPrint, where the same foundation has been pushed to Generated by Claude Code |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Starts LeanPrint — a modern, lightweight, open-source alternative to FinePrint that pools print jobs, imposes them N-up (2-on-1, 4-on-1, booklet), previews them WYSIWYG, and forwards to a real printer. It is designed from day one to run on Windows on ARM (ARM64) as well as x64.
The key design decision: no third-party print driver. Windows is retiring third-party v3/v4 drivers (Windows Protected Print), and on ARM64 x64 print drivers aren't emulated at all — so a FinePrint-style virtual driver is a dead end. LeanPrint instead captures jobs via a loopback IPP service driven by the Microsoft in-box IPP class driver (user-mode, driverless, ARM64-native). Rationale in
docs/ARCHITECTURE.md.This PR is the first increment: the platform-neutral, unit-tested core. Nothing here talks to a printer yet — the Windows capture/render/app layers are scaffolded on the roadmap.
What's included
LeanPrint.Core):SourcePage,PrintDocument,PrintJobPool— print-job pooling / "summarise print jobs".NUpImposer— N-up grids (arbitrary rows × columns), margins, gutters, cell order (row/column-major), scale modes (fit / fill / stretch / actual size), and auto-rotate to maximise each page within its cell.BookletImposer— saddle-stitch page reordering, padded to multiples of 4.README,ARCHITECTURE(capture strategy + why driverless),ROADMAP(M0–M5).Verification
dotnet test(Debug and Release) — 21/21 passing on Linux with the .NET 8 SDK. The core is intentionally OS-neutral so this runs anywhere.Layout
leanprint/src/LeanPrint.Coreleanprint/tests/LeanPrint.Core.Testsleanprint/docs/.github/workflows/leanprint-core.ymlNotes for reviewers
leanprint/and is fully separate from the existingunblock-Files.ps1utility. It may make sense to eventually split LeanPrint into its own repository — happy to do that.Next steps (see ROADMAP)
🤖 Generated with Claude Code
Generated by Claude Code