Ben, 2026-08-28: four changes, then build it, sign it, and make it deployable
through Intune without alerts.
1. The row of icons is a fifth shorter. Every toolbar label mode comes down
together so the proportions between them are unchanged: 34 -> 27 for a
caption beside the icon, 52/56 -> 42/45 for a caption under it, with the
padding reduced to match. The row measures 48px on screen where it was 60.
2. Scan sits in the main bar. It is a solid white button on the band, to the
left of the window buttons, so a person can pull pages off a copier whatever
the toolbar is showing. Behind it, Services/ScanService.cs talks to the
copier through WIA - the imaging service that ships with Windows, reached
late-bound so a machine without it fails at a check instead of at load - and
Features/Scan/ScanDialog picks the copier, the feed, the colour, the detail
and the paper. Pages come back as images and take the same route into a
document as an imported photograph. "Make the words searchable" runs the
text recognition the application already carries.
3. The official MMD lockup, in white, because the band is red now.
4. The MMD design system locked on 2026-08-28: ONE merged top bar carrying the
mark, the name, the tabs and the tools; 4px corners; 24px window buttons;
the bevel on title bars only. Colours are NOT adjusted - the Red Plate
silver and ink set already in Themes/MMD.xaml is untouched.
Also fixed, both found by looking at the running application at 800x600:
- The default 1000x700 window does not fit an 800x600 plant screen, and a
window taller than the screen puts its own title bar - and therefore Scan,
the window buttons and the tabs - above the top edge where nobody can reach
them. MainWindow now starts maximised when the screen cannot hold the
default.
- The close button was invisible: CaptionCloseBrush defaults to the danger
red, which on a red band is red on red. The window buttons are white now,
and close inverts to a white plate with a red cross on hover.
Built and run on mmd-win-test-01 at 800x600 through keyboard and mouse only.
Signed with the internal MMD code-signing certificate and timestamped.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
MmdPdf is a free, open-source PDF editor for Windows. View, annotate, OCR, merge, split, edit text, draw, sign, fill forms, print, flatten, and open password-protected PDFs without an Adobe subscription. Install it or run it portable from the same Windows download. No runtime installation is required, and the app never phones home.
Full how-tos live on the help page; internals, formats, and limits on the technical page.
Features
- High-quality PDFium rendering with four view modes (Single, Continuous, Two-Page with a book layout option, Grid), tabbed documents, and a split pane for two documents side by side
- Annotate with inline text editing and font matching, word-wrapping text boxes, drawing, lines, highlights, images, and page-number or watermark stamps. Highlights use the Multiply blend so the text underneath stays readable, and every tab has its own undo and redo history.
- Built-in OCR (Tesseract bundled, no cloud): make searchable PDFs, OCR a page or region to the clipboard, extract all text; extra languages download on demand
- Organize pages: merge, split, insert, rotate, crop, extract, delete, drag-and-drop reordering; drop a folder or
.ziponto the window to merge its contents - Export one page or a multi-page selection as PNG or JPEG directly from the Pages panel
- Transform: rotate, scale, flip, deskew by drawing a level line, perspective correction for photographed pages, and a LEVELS section (black point, white point, midtones) for pale scans
- Forms: fill text, checkbox, radio, and comb fields as live controls and save back; digital signatures with a cloud certificate (Certum SimplySign), plus drawn or imported signatures and initials
- Print with a real in-app preview, paper size and source selection, scale / position / margins / pages-per-sheet options at 300 DPI; Save Flattened rasterizes to a fully uneditable PDF
- Full-text search with highlighting, and column-aware text selection that copies multi-column pages in reading order
- Night-mode inversion works independently in each split pane. Thirteen themes, live accent colors, and toolbar styles provide 33 looks, while the resizable sidebar can dock on either side.
- Localized UI in 12 languages (contribute via
TRANSLATING.md); full keyboard shortcut overlay on F1 with list and visual keyboard views - Opens password-protected PDFs (prompts instead of erroring) and repairs damaged ones
- Runs portable, or self-installs per-user (no UAC) or machine-wide (
/silentfor scripted deployment); registers as a PDF handler and uninstalls cleanly - Standards-safe saves: every release is tested against a 2,900-file veraPDF conformance corpus with a zero-regressions requirement. See validation/RESULTS.md.
- Local-only: no account, no telemetry, no phone-home
Command line
Every core operation also runs headless from a terminal, with meaningful exit codes, even while the app is open:
MmdPdf.exe --merge out.pdf a.pdf b.pdf scan.jpg
MmdPdf.exe --extract-pages in.pdf 1-3,5 out.pdf
MmdPdf.exe --split in.pdf pages\
MmdPdf.exe --decrypt locked.pdf open.pdf [--password p]
MmdPdf.exe --to-image in.pdf imgs\ --dpi 300 --format jpg
MmdPdf.exe --flatten in.pdf flat.pdf
MmdPdf.exe --print in.pdf --printer "HP LaserJet" --pages 1-4 --copies 2
MmdPdf.exe --ocr scan.pdf searchable.pdf --lang eng
MmdPdf.exe --batch-resave inDir\ outDir\ --log report.csv
MmdPdf.exe --help
Full reference on the help page.
Screenshots
Requirements
- Windows 10 or 11 (x64)
- No runtime install. Everything needed is inside the EXE (targets .NET Framework 4.8, which ships with every supported Windows release).
Download
WinGet:
winget install mmdpdf
Chocolately:
choco install mmdpdf
- Prebuilt binary: https://github.com/SteveTheKiller/MmdPdf/releases/latest/download/MmdPdf.exe
- Source (GPL3 corresponding source for this release): https://github.com/SteveTheKiller/MmdPdf/releases/download/v1.7.5/MmdPdf-1.7.5-src.zip
Build from source
git clone https://github.com/SteveTheKiller/MmdPdf.git
cd MmdPdf
dotnet publish -c Release
Output lands in bin/Release/net48/publish/. Normal publishing produces the development single-file build plus a versioned MmdPdf-<version>-src.zip. The release pipeline builds a verified multi-file payload and packs it into one portable MmdPdf.exe; installed shortcuts launch the inner app directly for faster startup.
Requires the .NET 8 SDK or later to build (even though the output targets .NET Framework 4.8).
The PDF write engine (PdfSharpCore, MIT) is vendored under third_party/PdfSharpCore/ and builds as part of the solution; it carries six standards-conformance patches, each marked MmdPdf patch in the source. Origin commit and details are recorded in third_party/PdfSharpCore/VENDORED.txt.
Translations
UI strings live in Strings/ (one XAML ResourceDictionary per locale). To add or improve a language, see TRANSLATING.md. Missing keys fall back to English, so a partial translation is fine.
Changelog
See CHANGELOG.md.
License
GPLv3. See LICENSE. If you fork, modify, or redistribute MmdPdf, your version must also be released under GPLv3 with source available. No exceptions for commercial rebrands.




