Skip to content

wbp318/HermosaPDF

Repository files navigation

HermosaPDF

Personal PDF editing suite — a desktop app that covers what Adobe Acrobat does, wearing a Windows 98 skin with phosphor-green accents.

Copyright © 2026 William Brooks Parker. All rights reserved. HermosaPDF is proprietary software distributed under the terms of LICENSE.md. Third-party open-source components are listed in NOTICE.md.

Release

The original Python scripts that used to live in this repo are preserved under archive/.

Install

Grab the latest installer from the v0.1.0 release:

  • HermosaPDF_0.1.0_x64-setup.exe (NSIS) — smaller, recommended for personal install
  • HermosaPDF_0.1.0_x64_en-US.msi (MSI) — for group-policy / enterprise deploy

The installer is unsigned, so Windows SmartScreen may warn on first run — More info → Run anyway.

Features

  • Organize — rotate, delete, insert blank, extract, merge, split, and drag-reorder pages. Each page keeps a stable identity label so thumbnails stay readable after moves.
  • Annotate — freehand draw, text boxes, sticky notes, and e-signatures (draw / type / upload) with Konva-based resize handles. Annotations flatten into the PDF on save.
  • Convert — PDF ↔ images (PNG/JPEG), PDF → text, bundle images into a PDF.
  • OCR — Tesseract.js with a pre-scan that skips pages that already have selectable text. Output is an invisible text layer, not a duplicate.
  • AI (Claude) — summarize, Q&A against the doc, extract fields to JSON, flag PII. Model tier selector defaults to Haiku 4.5; pick Sonnet 4.6 or Opus 4.7 when needed. Prompt caching on the document block.
  • Encrypted PDF support — every open round-trips through Rust's lopdf so owner-password PDFs and malformed XRefs just work.
  • Win98 chrome — custom title bar, menu bar, status bar, chunky scrollbars, phosphor-green highlights.

Stack

  • Tauri v2 — Rust backend, system WebView2 on Windows
  • React 19 + TypeScript + Vite — UI
  • pdfjs-dist — rendering
  • pdf-lib — page manipulation + flatten
  • lopdf (Rust) — decryption + structural normalization
  • konva + react-konva — annotation overlay
  • tesseract.js — OCR
  • @anthropic-ai/sdk — Claude API
  • keyring (Rust) — OS-keychain storage for the Anthropic key
  • zustand — state management

Architecture

[Disk .pdf]
     │ readFile (tauri-plugin-fs)
     ▼
[Raw bytes]
     │ pdf_decrypt  ◄── lopdf (Rust)
     ▼
[Normalized + decrypted bytes]
     │                        │
     ▼                        ▼
[pdfjs render]         [pdf-lib edit]
     │                        │
     ▼                        ▼
[Canvas (Viewer +         [New bytes → pdfjs reload]
 Thumbnails +                  │
 Konva annotations)]           ▼
                         [writeFile save]

Frontend

Rust side

See CLAUDE.md for the architecture invariants and Windows-specific gotchas, and PLAN.md for what's shipped vs deferred.

Run from source

Prerequisites (Windows)

  1. Node.js 20+
  2. Rust via rustup
  3. Visual Studio 2022 Build Tools with "Desktop development with C++" workload
  4. Windows 11 SDK (install via the VS Installer if not already present)

Develop

npm install
npm run tauri dev

First tauri dev compiles the Rust dependencies (including lopdf + keyring); subsequent runs are fast.

Build the installer yourself

npm run tauri build

Output: src-tauri/target/release/bundle/nsis/*.exe and bundle/msi/*.msi.

Roadmap

  1. ✅ Phase 1 — PDF viewer with thumbnails, open/close, zoom, paging
  2. ✅ Phase 2 — Page ops (rotate, delete, insert, extract, merge, split, reorder)
  3. ✅ Phase 3a — Freehand / text / sticky annotations + flatten on save
  4. ✅ Phase 4 — E-signatures (draw / type / upload, resize, flatten)
  5. ✅ Phase 5a — PDF ↔ images, PDF → text, images → PDF
  6. ✅ Phase 6 — OCR via Tesseract with pre-scan
  7. ✅ Phase 7 — AI document analysis (Claude summarize / Q&A / extract / redact)

Deferred / nice-to-have — see PLAN.md: text-selection highlight layer (Phase 3b), Word/HTML → PDF (Phase 5b), multi-select thumbnails, interactive redaction UI, code signing, auto-update.

About

Personal PDF editing suite — desktop app built with Tauri v2 + React + TypeScript. Rotate, reorder, split/merge, annotate, e-sign, OCR, and AI analysis via Claude. Rust-side decryption via lopdf for in-the-wild PDFs.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors