Skip to content

Releases: eliets2/glyph-pdf

GlyphPDF v1.3.1

16 Jun 01:00

Choose a tag to compare

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

  1. Download GlyphPDF-1.3.1-x64.msi
  2. Verify SHA-256:
    (Get-FileHash "GlyphPDF-1.3.1-x64.msi" -Algorithm SHA256).Hash
    # Expected: 8D96CE144A504C450E858C858B6AA8E0C54D710D3D4C6FDA6FB0D22824DF962A
  3. 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

15 Jun 17:38

Choose a tag to compare

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 /C action), registered in the AcroForm /CO calculation-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.
  • 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

  1. Download GlyphPDF-1.3.0-x64.msi
  2. Verify SHA-256:
    (Get-FileHash "GlyphPDF-1.3.0-x64.msi" -Algorithm SHA256).Hash
    # Expected: B7859F33C78917BAFD6866818A1C44BFF66960369E90FDAAF32C7ED21821E4F1
  3. 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

15 Jun 15:36

Choose a tag to compare

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 _ZN6PoDoFo10PdfContentC1Ev could 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

  1. Download GlyphPDF-1.2.1-x64.msi
  2. Verify SHA-256:
    (Get-FileHash "GlyphPDF-1.2.1-x64.msi" -Algorithm SHA256).Hash
    # Expected: A4B16DD2080FE2F6EA3E1CD81966865322EEFAB78BE31169F1319161DD7644DC
  3. 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

13 Jun 23:49

Choose a tag to compare

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.dll requires 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;
    see third_party/verapdf/LICENSE.txt in 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, run GlyphPDF.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).Hash

GlyphPDF v1.0.0 — First Public Release

11 Jun 12:29

Choose a tag to compare

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: pdfEscapeLiteralString hardens 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: /IRT in-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)

  1. Download GlyphPDF-1.0.0-x64.msi below.
  2. Verify the SHA-256 checksum (see SHA-256 Verification below).
  3. Run the MSI installer.
  4. Launch GlyphPDF from the Start Menu or by double-clicking any .pdf file.

Option B — Portable (no installation)

  1. Download GlyphPDF-1.0.0-x64-portable.zip below.
  2. Verify the SHA-256 checksum.
  3. Unzip to any folder (e.g. C:\GlyphPDF or a USB drive).
  4. Run GlyphPDF.exe directly 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 exactly

Command prompt:

certutil -hashfile GlyphPDF-1.0.0-x64.msi SHA256

Build 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 -j4

Full 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.