storytold /pdfcraft

PdfCraft: An open-source PDF reader and editor written from scratch in pure Rust

★ 20,238⑂ 7,471👁 79⑃ 3,695● 2,954▤ 22◈ 0
RustApache-2.0Created 2026-09-30getartcraft.com/apps/printcraft
20,238
stars
+152
7,471
forks
79
watchers
3,695
prs
2,954
issues
22
releases
0
discussions

README

PdfCraft


  The PDF workbench; an open-source, modern PDF reader and editor, built in pure Rust.
  Read, organize, combine, split and secure PDFs in a fast, native app, written in Rust from the ground up.
  macOS · Windows · Linux · FreeBSD · the web



  
  
  
  
  
  
  



  



  PdfCraft on getartcraft.com ·
  ArtCraft ·
  All Crafting Apps





  
  
  The PdfCraft Showcase, a 13-page specimen PDF, open with the All tools panel and threaded comments.


 [!NOTE]
 ArtCraft is a community of artists from all walks of life. Digital, generative, music,
 games — if you make things, you're one of us. Come say hi on Discord.


  Highlights ·
  Read ·
  Find ·
  Organize ·
  Combine & split ·
  Protect ·
  Forms & layers ·
  Everywhere ·
  Agents ·
  How it's built ·
  Get started ·
  What's next ·
  Downloads ·
  Crafting Apps


---

 Community

PdfCraft is part of ArtCraft. Come say hello, get help and follow development:

- Discord: discord.gg/artcraft. This is the fastest way to get help and share feedback. The app has a Discord button in its title bar.
- Web page: getartcraft.com/apps/pdfcraft
- Source: github.com/storytold/pdfcraft

The ArtCraft name and logos in docs/brand/ are trademarks of the ArtCraft Team and are not open source. They may be used only unmodified, and only as part of PdfCraft (see docs/brand/LICENSE-brand.txt). Forks and modified versions must remove them.

 Highlights





 Faithful
Real-world typography: world scripts, vertical Japanese, colour emoji, gradients, soft masks and transparency. All of it renders the way the author intended.




 Fearless
Ordinary saves append your changes and leave the original bytes untouched. Edits to damaged objects whose xref and header generations disagree use a full rewrite, keeping both accepted references connected to the same repaired object. Writes are atomic, undo runs deep, and nothing is lost if you close by mistake.




 Yours
No account, no telemetry, no cloud. It works offline and opens instantly. The engine, CLI and app are all open source.





---

 Read anything, beautifully

PdfCraft renders PDFs with care for the details that make a page feel right: kerning and ligatures, right-to-left and complex scripts, vertical CJK, colour emoji, shadings, blend modes, soft masks and optional content.


  
  
  Twelve writing systems on one page, plus vertical Japanese, at 125%.


- Deep zoom stays sharp. Large pages render in tiles, so text stays crisp at any magnification.
- Built to survive bad files. Every page renders in isolation and damaged documents are repaired. Across the 983-file pdf.js test corpus the result is 0 crashes.
- Layouts for every task: continuous, single page, two-up, view rotation, full screen and a distraction-free Read mode.
- Light and dark themes, both designed to be easy on the eyes for long sessions.







Two-up Read mode, ready for long reading
The dark theme, with the comments panel open



 Find it, select it, copy it

Search the w

Top issues

Latest release

PdfCraft v0.19.0 v0.19.0 2026-11-06
What's Changed
 fix(ui): size the whole-page raster allowance to the pages on screen by @dotCooCoo in https://github.com/storytold/pdfcraft/pull/6065
 fix(ui): continuous view renders the pages ahead of the scroll by @dotCooCoo in https://github.com/storytold/pdfcraft/pull/6063
 Scroll: smooth wheel bursts and preserve precise movement by @dotCooCoo in https://github.com/storytold/pdfcraft/pull/6031
 refactor(ui): tell page modules whether a press is theirs (router PR 4a) by @alehel in https://github.com/storytold/pdfcraft/pull/5803
 M11: JBIG2 encodes only what its decoder takes: Optimize no 

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON