Releases: eliets2/glyph-pdf
GlyphPDF v1.3.1
GlyphPDF v1.3.1 — Maintenance Release
Release date: 2026-06-16
Type: Patch release (backward-compatible with v1.3.0)
Summary
v1.3.1 polishes the v1.3.0 feature set: it removes leftover placeholder content
from the OCR Verify screen, wires the in-app update experience end-to-end, and
gives the MSI installer a branded, professional wizard.
What's New
Fixes
- OCR Verify screen no longer shows hardcoded demo content (the
"Performance Overview / $2,418M" sample). It now presents a clean empty state
until you run OCR on a real document, and clears properly afterward.
In-app updates
- The on-launch update check is wired to a live manifest and is on by default
(a one-time notice explains it; toggle under Preferences ▸ Updates). - A polished update dialog replaces the inline banner buttons: it shows the
new vs. installed version, a release-notes link, a download progress bar, and a
primary button that walks Download → (SHA-256 + signature verified) → Install. - Preferences ▸ Updates "Check Now" now respects the selected channel.
- The app version now derives from the build (fixing a stale hardcoded value).
Installer
- A branded MSI wizard: a custom Welcome/Finish background and banner, plus a
"Launch GlyphPDF" option on the Finish screen.
All v1.3.0 features and the v1.2.x stability/security fixes are included.
Notes & limitations
- The MSI is not yet code-signed, so the in-app Install & Restart step is
blocked by the Authenticode check; the notify → download → SHA-256 verify steps
work, and the downloaded MSI can be run manually. - Annotation Erase remains an explicit "not yet implemented" placeholder.
Installation
Installer
- Download
GlyphPDF-1.3.1-x64.msi - Verify SHA-256:
(Get-FileHash "GlyphPDF-1.3.1-x64.msi" -Algorithm SHA256).Hash # Expected: 8D96CE144A504C450E858C858B6AA8E0C54D710D3D4C6FDA6FB0D22824DF962A
- Run the installer — upgrades in-place from v1.0.x / v1.2.x / v1.3.0.
Portable
Download GlyphPDF-1.3.1-x64-portable.zip, verify its SHA-256, and extract.
Files
| File | SHA-256 |
|---|---|
GlyphPDF-1.3.1-x64.msi |
8D96CE144A504C450E858C858B6AA8E0C54D710D3D4C6FDA6FB0D22824DF962A |
GlyphPDF-1.3.1-x64-portable.zip |
29D15BD5E120ED1459987AD6F7F1D7183E910AC58D59B6E593131E658502D2A5 |
GlyphPDF v1.3.0
GlyphPDF v1.3.0 — Feature Release
Release date: 2026-06-15
Type: Minor feature release (backward-compatible with v1.2.x)
Summary
v1.3.0 closes nine PRD gaps across annotation, forms, batch automation, document
comparison, secure sharing, and accessibility. It builds directly on the v1.2.1
stability fix and the v1.2.0 security hardening — no regressions to existing
workflows.
What's New
Annotation & navigation
- OCR Verify screen restored to the screen navigation strip — the dedicated
confidence-review screen, hidden since v1.0.0, is wired again. (§9.3) - Stamp, Callout, and Erase annotation tools promoted from planned to live.
Stamp and Callout are backed by the existing canvas annotation modes; comment
annotations now carry a file-attachment field. (§9.3)
Forms
- Calculated form field — a 10th AcroForm field type. Drops a read-only text
field whose value is computed by a JavaScript/AcroForm calculation
(/AA /Caction), registered in the AcroForm/COcalculation-order array.
Drive it from Form Builder's new Calculated type with an expression input. (§9.6)
Batch processing
- Batch OCR, Merge, and Redact are no longer stubs:
- Merge combines all input files into a single
<first>_merged.pdf. - OCR renders each page and writes a searchable MRC PDF/A.
- Redact excises comma-separated regex patterns and flattens the result.
- Merge combines all input files into a single
- Hot folder watching — watch a directory and auto-ingest new PDFs (debounced),
with an optional auto-run on arrival. (§9.12)
Compare
- Export comparison reports to a self-contained HTML report (two-column
removed/added table with summary header) or a plain-text unified diff. (§9.10) - Page reorder detection — whole pages that moved position are detected via a
page-level LCS over page fingerprints and reported as
"Page N moved to position M". (§9.10)
Security & sharing
- Secure sharing — share a document as an AES-256 encrypted ZIP package
(in addition to the existing email attachment path). (§9.11) - Document expiry — embed an expiry date in the PDF's XMP metadata
(glyph:ExpiryDate); expired documents open in read-only mode with a warning. (§9.11)
Accessibility
- Tagged-PDF reading-order check in the PDF/A panel — walks the structure tree
and flags elements whose structural order diverges from their visual position. (§9.14)
Notes & limitations
- Encrypted package sharing uses a 7-Zip executable (PATH, standard install
location, or bundled). When 7-Zip is unavailable, the action explains how to
proceed rather than failing silently. - Annotation Erase is exposed in the ribbon but its canvas hit-testing is not
yet implemented; selecting it shows an explicit "not yet implemented" notice.
Installation
Installer
- Download
GlyphPDF-1.3.0-x64.msi - Verify SHA-256:
(Get-FileHash "GlyphPDF-1.3.0-x64.msi" -Algorithm SHA256).Hash # Expected: B7859F33C78917BAFD6866818A1C44BFF66960369E90FDAAF32C7ED21821E4F1
- Run the installer — upgrades in-place from v1.0.x and v1.2.x.
Portable
Download GlyphPDF-1.3.0-x64-portable.zip, verify its SHA-256, and extract.
Files
| File | SHA-256 |
|---|---|
GlyphPDF-1.3.0-x64.msi |
B7859F33C78917BAFD6866818A1C44BFF66960369E90FDAAF32C7ED21821E4F1 |
GlyphPDF-1.3.0-x64-portable.zip |
9671BEE77C572CA6588B0925FE2AE8ED4864124DB0D703B9F85E9CC15C211B27 |
Included from prior releases
- All v1.2.1 stability fixes (startup-crash / podofo DLL staging).
- All v1.2.0 security fixes (SECFIX-1 through SECFIX-5).
GlyphPDF v1.2.1 — Startup Crash Fix
GlyphPDF v1.2.1 — Startup Crash Fix
Release date: 2026-06-15
Type: Critical patch (all v1.0.x and v1.2.0 users affected — upgrade required)
Summary
v1.2.1 fixes a startup crash that affects every install of v1.0.0, v1.0.1, and v1.2.0
on machines where the MSYS2 ucrt64 podofo package is installed alongside the vendored
podofo 1.1.0 used to build GlyphPDF.
Bug Fixed
BUG-1 — CRITICAL: GlyphPDF crashes on startup with "Entry Point Not Found"
Symptom: GlyphPDF.exe - Entry Point Not Found dialog on every launch:
The procedure entry point
_ZN6PoDoFo10PdfContentC1Evcould not be located
in the dynamic link library
Root cause: packaging/deploy.ps1 uses an objdump dependency-closure loop to
bundle MinGW DLLs. The loop found libpodofo.dll imported by GlyphPDF.exe and
copied it from C:\msys64\ucrt64\bin (podofo 0.10.4). However, GlyphPDF.exe
was linked against the vendored podofo 1.1.0 from third_party/podofo/install/.
The two versions are ABI-incompatible: PoDoFo::PdfContent::PdfContent() is not
exported by 0.10.4, causing the entry-point crash on load.
Fix: deploy.ps1 now explicitly stages third_party/podofo/install/bin/libpodofo.dll
(1.1.0) before the objdump closure runs. The closure's already-present guard then skips
the ucrt64 copy. If the vendored directory is absent (builds that use the MSYS2 0.10.4
path), the closure correctly picks up the matching DLL as before.
Included From v1.2.0
All five security fixes from v1.2.0 are included — see
release-notes-v1.2.0.md for full detail:
- SECFIX-1: OCSP test-fixture bypass removed from production builds
- SECFIX-2: AES-256-GCM downgrade oracle fixed
- SECFIX-3: TOCTOU in MSI update verifier fixed
- SECFIX-4: Unbounded recursion + over-broad allowlist in SignatureManager fixed
- SECFIX-5: OllamaProvider data-exfiltration vector restricted
Installation
Installer
- Download
GlyphPDF-1.2.1-x64.msi - Verify SHA-256:
(Get-FileHash "GlyphPDF-1.2.1-x64.msi" -Algorithm SHA256).Hash # Expected: A4B16DD2080FE2F6EA3E1CD81966865322EEFAB78BE31169F1319161DD7644DC
- Run the installer — upgrades in-place from v1.0.x and v1.2.0.
Files
| File | SHA-256 |
|---|---|
GlyphPDF-1.2.1-x64.msi |
A4B16DD2080FE2F6EA3E1CD81966865322EEFAB78BE31169F1319161DD7644DC |
GlyphPDF v1.0.1
GlyphPDF v1.0.1 — Maintenance Release
A privacy-first PDF workstation for Windows. No telemetry. No cloud. No subscription.
Licensed under Apache-2.0.
This release fixes installability on clean machines and revives two optional features
that were silently broken in v1.0.0. If you installed v1.0.0, upgrade to this build.
Fixed
- "The procedure entry point could not be found in the dynamic link library" on a
fresh Windows install.onnxruntime.dllrequires the Visual C++ 2015–2022 runtime
(VCRUNTIME140.dll,VCRUNTIME140_1.dll,MSVCP140.dll), which wasn't bundled. The
installer and portable ZIP now include it — GlyphPDF launches with zero
prerequisites on a clean Windows 10/11 machine. - Office → PDF import did nothing in v1.0.0. The LibreOffice path was resolved at
build time from the build machine, so on the release builder (which had no
LibreOffice) the feature was compiled out. It now detects a converter at runtime
(a bundled copy, the PATH, Program Files, or the registry) and works with whatever the
user has installed — LibreOffice or Microsoft Office. - PDF/A validation was permanently "unavailable" in v1.0.0, for the same
build-time-path reason.
Added
- PDF/A validation works out of the box. veraPDF 1.30.2 and a minimal OpenJDK 21
runtime are bundled, so conformance validation runs with no Java install required.
veraPDF is invoked as a subprocess only (GPLv3+/MPLv2+ — license-safe aggregation;
seethird_party/verapdf/LICENSE.txtin the source tree). - Friendly one-click "Download…" prompts for LibreOffice when an optional converter
is missing, replacing the old developer-oriented "build with -D…" message. - The portable edition (
GlyphPDF-1.0.1-x64-portable.zip) — unzip and run, no
installation, nothing written to the registry.
Everything else is unchanged from v1.0.0 — see
release-notes-v1.0.0.md for the full feature list.
Installation
System requirements: Windows 10 (1607+) / 11, x64. ~600 MB disk space. Nothing else.
- Installer: download
GlyphPDF-1.0.1-x64.msi, verify the SHA-256 below, run it. - Portable: download
GlyphPDF-1.0.1-x64-portable.zip, verify, unzip anywhere, runGlyphPDF.exe.
Upgrading from v1.0.0 is automatic — the MSI replaces the previous install.
SHA-256 Verification
SHA-256: 86EB190A196EF56256F75E8998241628C8752BCCDE43A441566293934AA52486
File: GlyphPDF-1.0.1-x64.msi
SHA-256: A4D9C681E485940C92ED63AF16E4620D7DE5F53BB2F6CE4B3A8DCC43DD9784E7
File: GlyphPDF-1.0.1-x64-portable.zip
(Get-FileHash "GlyphPDF-1.0.1-x64.msi" -Algorithm SHA256).HashGlyphPDF v1.0.0 — First Public Release
GlyphPDF v1.0.0 — First Public Release
GlyphPDF is an open-source, privacy-first PDF workstation for Windows. No telemetry. No cloud
upload. No subscription. Your documents stay on your machine.
Licensed under Apache-2.0.
What's in v1.0.0
Core PDF Engine
- Three-backend architecture: PoDoFo for editing/annotations/forms/encryption,
PDFium for high-quality rendering (3-tier LRU tile cache, 256 MB), qpdf for
linearization and repair-on-open. - Incremental save preserves digital signatures.
- Corruption recovery with graceful repair-on-open warnings.
Security & Redaction
- Edact-Ray defense: glyph-advance normalization closes the side-channel attack
(Bland et al., PETS 2023 / arXiv 2206.02285) — redacted text cannot be reconstructed
from cursor-position gaps. - Invisible OCR text scrub: Tr==3 invisible text within redaction rectangles is
excised from the content stream, not merely painted over. - PAdES B-LT/B-LTA digital signatures with real DSS/VRI embedding, trust-chain
verification against the Windows system root store, OCSP response verification, and
ByteRange overlap detection (PDF shadow attack prevention). - 15+ sanitization vectors: metadata, JavaScript, embedded files, and more.
- Content-literal injection fixed:
pdfEscapeLiteralStringhardens watermark,
annotation, header/footer, and Bates numbering against injection.
OCR — Workstream 1
- PP-DocLayoutV2 layout detector (ONNX, Apache-2.0): 11-region-type detection
(Title/Paragraph/Table/Figure/List/Header/Footer/Equation/Reference/Caption/Other). - Tesseract 5.5.2 + RapidOCR PP-OCRv5 dual-engine fanout via LaneScheduler.
- ROVER word-level fusion for multi-engine consensus — the default OCR engine
is the ROVER ensemble (Tesseract primary + RapidOCR secondary, IoU-matched,
confidence-weighted), with automatic fallback to Tesseract-only when the
bundled PP-OCRv5 models are unavailable. - OCR result overlay in the viewer, with re-OCR on demand from the Edit ribbon.
- All models bundled — the installer ships the PP-OCRv5 and layout ONNX
weights plus Tesseract language data, so OCR works offline with no downloads. - Cross-page pipeline: layout ‖ OCR ‖ fusion overlap via
CrossPagePipeline.
Djot Document Interchange — Workstream 2
- Dual-model architecture: Structural PDF object graph ↔ Semantic
SemanticDocument. - OCR→Djot mapping (
OcrDjotMapper): reading-order layout regions → block structure,
per-word provenance encoding for MRC sandwich-text alignment. - Annotation rich text in Djot with /RC XHTML + /Contents plain text + /PieceInfo
Djot sidecar — perfect GlyphPDF roundtrip plus Acrobat/Foxit interoperability. - Comment threading:
/IRTin-reply-to linking, review-state roundtrip, depth-indent
view with date/status/author filters. - ProvenanceGuard refuses Djot save-back to signed born-PDF documents.
- Vendored Lua 5.4 (MIT) + Djot reference parser for spec-conformant parsing.
MRC Layered Compression — Workstream 3
- 30× compression ratio measured on synthetic A4 scanned page.
- JBIG2 lossless foreground (agl/jbig2enc, Apache-2.0) — pattern-matching mode
disabled (Xerox 2013 / German BSI ban). - JPEG2000 background at configurable ratio (Lossless 10:1 / Balanced 30:1 /
Aggressive 50:1) via OpenJPEG 2.5.4 (BSD-2-Clause). - Invisible sandwich text from WS1 OCR word boxes — output is searchable PDF/A-2b.
- veraPDF validation gate before finalization.
AI Assistant
- Local AI via Ollama (llama3 default): real async HTTPS calls to a locally running Ollama
instance — no data leaves your machine. - API key storage via Windows Credential Manager; "Test connection" verifies reachability before saving.
- Cloud providers (Anthropic, OpenAI, Google Gemini) are planned for a future release.
Office & Image Import
- Office→PDF via LibreOffice subprocess (docx/xlsx/pptx/odt/ods/odp/rtf/csv/txt).
- Images→PDF via PoDoFo PdfImage XObject embedding (PNG/JPEG/TIFF).
Modes & Tools
- 7 mode tabs: Home, View, Edit, Pages, Convert, Forms, Security
- Pages mode: split (by-page / every-N / range expression), reorder with drag-drop.
- Batch mode: 7 operation types, per-file progress, continue-on-failure, CSV/JSON
error log export. - Form Builder: 7 field types (Text/Checkbox/Radio/Dropdown/ListBox/Date/Numeric)
with tab-order editor and undo/redo. Signature widget and pushbutton fields are planned
for a future release. - Compare mode: Myers LCS diff with move detection (green/red/orange), NEXT/PREV
navigation. - Signature mode: PAdES B-LT/B-LTA signing + validation with trust indicators.
- PDF/A mode: veraPDF subprocess validation, conformance levels, export.
- Compress mode: MRC Off/Lossless/Balanced/Aggressive selector + live size estimate.
Branding & UI
- App icon, splash screen, and system-tray icon (Show/Quit).
- Dark, Light, and High Contrast themes.
- WCAG-aligned accessibility: screen reader names, F6 region cycling, F1 help dialog.
- Autosave every 5 minutes (configurable 1-30 min); crash recovery on next launch.
Localization
GlyphPDF v1.0 ships in English. Arabic, French, and German translations are planned for a future release.
Translation framework wired for Arabic (RTL), French, German (1394 source strings each; 0 translated in v1.0). Human-translated packages are pending commissioning for a future release.
Installation
System requirements: Windows 10/11 x64, ~500 MB disk space.
Option A — Installer (recommended)
- Download
GlyphPDF-1.0.0-x64.msibelow. - Verify the SHA-256 checksum (see SHA-256 Verification below).
- Run the MSI installer.
- Launch GlyphPDF from the Start Menu or by double-clicking any
.pdffile.
Option B — Portable (no installation)
- Download
GlyphPDF-1.0.0-x64-portable.zipbelow. - Verify the SHA-256 checksum.
- Unzip to any folder (e.g.
C:\GlyphPDFor a USB drive). - Run
GlyphPDF.exedirectly from that folder.
The portable edition is fully self-contained — all runtimes, models, and language data are included. Nothing is written outside the unzipped folder.
Optional dependencies (not bundled):
- LibreOffice (for Office→PDF import)
- veraPDF CLI (for PDF/A live validation in the PDF/A panel)
- Ollama (for local AI assistant without an API key)
SHA-256 Verification
SHA-256: 79286BA3F8756B166C7ED4F8D1F2342CE0AE41EA9018C73A26E16BE010AF827B
File: GlyphPDF-1.0.0-x64.msi
SHA-256: 530D24541824362CCD2EAFD55F1BB15ABABE461EB1662E32D80B1CDEB6E17BB7
File: GlyphPDF-1.0.0-x64-portable.zip
PowerShell verification:
(Get-FileHash "GlyphPDF-1.0.0-x64.msi" -Algorithm SHA256).Hash
# Compare with the hash above — must match exactlyCommand prompt:
certutil -hashfile GlyphPDF-1.0.0-x64.msi SHA256Build From Source
# MSYS2 ucrt64 toolchain (GCC 16.1.0, Qt 6.11.0)
pacman -S mingw-w64-ucrt-x86_64-qt6-base mingw-w64-ucrt-x86_64-podofo \
mingw-w64-ucrt-x86_64-tesseract-ocr mingw-w64-ucrt-x86_64-openjpeg2
mkdir build && cd build
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build . --parallel 8
QT_QPA_PLATFORM=offscreen ctest --output-on-failure -j4Full package list in README.md → "Build Instructions".
Acknowledgements
GlyphPDF would not exist without these open-source projects:
| Library | License | Use |
|---|---|---|
| Qt 6.11 | LGPL-3.0 | Application framework |
| PoDoFo 1.1.0 | LGPL-2.0 | PDF editing + annotations |
| PDFium | BSD-3-Clause | PDF rendering |
| qpdf 12.3.2 | Apache-2.0 | PDF linearization + repair |
| Tesseract 5.5.2 | Apache-2.0 | OCR engine |
| OpenJPEG 2.5.4 | BSD-2-Clause | JPEG2000 encoding |
| agl/jbig2enc | Apache-2.0 | JBIG2 lossless compression |
| Lua 5.4 | MIT | Djot reference parser host |
| ONNX Runtime | MIT | ML inference (layout + OCR) |
| OpenSSL | Apache-2.0 | Cryptographic operations |
Full dependency audit: docs/MRC-ENCODER-LICENSE-AUDIT.md
Contributions welcome — see CONTRIBUTING.md for the contribution guide and SECURITY.md for responsible disclosure.