PDFast
A fast, lightweight, native Windows PDF viewer & editor — compiled to a
single self-contained .exe. No installer, no .NET, no VC++ redistributable,
no external DLLs beyond stock Windows system libraries. Rendering and document
handling are provided by MuPDF, statically linked.
The produced PDFast.exe is ~5.5 MB and depends only on DLLs already present on
every Windows 10/11 machine (kernel32, user32, gdi32, gdiplus,
comctl32, comdlg32, shell32, ole32, uxtheme, dwmapi, msimg32,
winhttp, advapi32). Hand it to anyone on a clean Windows 10/11 PC and it just
runs.
Why PDFast?
I built PDFast because the PDF viewer built into Microsoft Edge stopped being
good. After Edge switched the underlying PDF engine, everyday viewing got slower
and noticeably buggier — and the setting that used to let you fall back to the
old, reliable viewer was quietly removed, so there's no longer a way to opt
out of the regression.
PDFast brings back what that experience used to be: a fast, no-nonsense,
native PDF viewer that opens instantly, scrolls smoothly, renders crisply, and
stays out of your way — plus the editing and document tools the built-in viewer
never had. It's a single tiny .exe, so there's nothing to install and nothing
to slow you down.
Download & install
- Go to the Releases page and download
PDFast.exe from
the latest release.
- Put it anywhere you like (Desktop, a tools folder, …) and double-click it.
There is nothing to install.
- On first run PDFast adds itself to the Start menu and to the right-click
"Open with" list, and offers (once) to become your default PDF app —
accept to open the Windows default-apps screen, or skip it. You can change
this any time in Windows Settings → Apps → Default apps.
SmartScreen note: because the download is not code-signed, Windows may show
"Windows protected your PC." Click More info → Run anyway. This is normal
for unsigned open-source software. (You can also right-click the downloaded
file → Properties → Unblock before launching.)
Runtime requirements
None beyond Windows 10 or 11 (OCR also needs an OCR-capable language, which
English-language Windows includes). PDFast is a native Windows application — it
does not run on macOS or Linux.
Features
Viewing
- Open via File → Open, drag-and-drop, the Start menu, right-click
"Open with → PDFast", or a command-line path.
- Opens maximized by default, with Windows 11 native chrome (rounded corners,
Mica backdrop) where available.
- Smooth continuous scroll, zoom, Fit Width, Fit Page, page drop shadows.
- Rotate the view 90° at a time (toolbar button, or Ctrl+Shift++ /
Ctrl+Shift+−) for sideways scans. This is a view setting — the file is
never modified and the rotation resets when the tab loads another document.
To rotate pages permanently, use Organize pages instead.
- Multiple documents in tabs (drag to reorder, tabs shrink to fit).
- Reopen a closed tab with Ctrl+Shift+T, or right-click the tab bar for the
last few closed files. The list is per window and lasts only until you quit.
- Crisp rendering on HiDPI displays (per-monitor DPI aware).
Search & Print
- Find text (Ctrl+F): incremental highlight of all matches, live counter,
jump between matches (Enter / F3 / Shift+F3).
- Print (Ctrl+P): side panel with live preview, destination/copies/page
range, orientation, color or grayscale (grayscale by default), and a
Quality setting for how finely pages are rasterized for the printer —
150 to 1200 DPI, defaulting to 600. Pages are never rendered above the
printer's own resolution.
- Save as PDF — the first entry in the print panel's destination list.
Writes the selected page (or range) out as a new PDF with the pages copied
across as pages: text stays selectable and annotations stay editable, unlike
a print-to-PDF driver, which flattens everything to an image.
Annotate & fill forms
- Highlight, freehand draw, and free-text boxes — all edited inline, no modal
dialogs. Fill AcroForm fields directly on the page.
Sign
- Type your name and pick a handwriting font, or draw a signature with the
mouse — then click anywhere on the page to place it (drag instead to size it).
- Opening the panel doesn't take the page over: it keeps its normal pointer,
text selection, links and right-click menus. Only once you pick a signature
does the pointer become a placement cursor, and Esc puts it back down
again without closing the panel.
- Placed signatures can be moved and resized afterwards: click one with the
Select tool for drag handles (corners keep the aspect ratio), or press Delete.
Resizing one is remembered — the next placement uses that size.
- Ctrl+C / Ctrl+V on a selected signature copies it and drops an identical
one wherever your cursor is, for signing several places at the same size.
- Optionally add a date, chosen from a calendar — any date you like, never
just "today". Four unambiguous formats, placed below or beside the signature
and written in the same handwriting font so the two read as one.
- Signatures are remembered between sessions, so signing again is one click —
and a signature is saved together with its date, so signing and dating
several spots across a document is one click each time.
- Finish & Lock bakes the signature, every annotation and all form-field
values into the page: nothing stays fillable or editable, while page text
stays selectable. Irreversible, so it asks first.
- This is a visible, hand-written-style signature — not a cryptographic /
certificate-based one. There's no audit trail, and locking is enforced by
flattening rather than by tamper detection.
OCR for scanned pages
- A scanned PDF (pages that are just a picture) opens with the OCR toolbar
toggle already on: the text is read in the background, nearest the page you're
on first, and becomes selectable, copyable and searchable.
- Uses the OCR engine built into Windows 10/11 (
Windows.Media.Ocr) — nothing
extra to install or ship, fully offline, and it needs an OCR language pack
(English ships with Windows; add others under Settings → Time & language →
Language & region).
- Digital PDFs are never touched: a quick text-extraction check (no rendering)
decides which pages need OCR, and everything else is skipped. The toggle can be
switched on or off by hand for any PDF.
- Save / Save As write the recognized text into the file as an invisible
text layer, so it stays selectable and searchable in any other PDF viewer.
Turn the toggle off before saving to leave the file without it. The text isn't
saved until you Save; closing doesn't prompt for it, since it can be re-read.
- Accuracy is that of the Windows engine: clean, upright, horizontal scans work
best. Rotated pages and handwriting are not handled.
Security
- Open password-protected PDFs (inline password prompt).
- Remove password / restrictions from an encrypted PDF you can open.
Automatic updates
- On launch the app quietly checks GitHub for a newer release. If one exists it
offers a one-click update — downloads the new build, swaps it in, and
relaunches. Also available on demand via Tools → Check for Updates.
Document tools (toolbar → wrench menu)
- Organize pages — reorder (drag), rotate, delete, insert pages from other files.
- Merge several PDFs; Split by page ranges.
- Resize pages to A4.
- Convert to read-only (flatten each page to an image — text no longer selectable).
- Compress (downsample + recompress images via MuPDF's image rewriter — big
wins on scanned documents).
- Redact — permanently remove marked content (not just cover it).
- After any of these, choose Save (overwrite) or Save a Copy.
Building from source
Build-time dependencies (not needed at runtime)
- Visual Studio 2022 Build Tools (or full VS 2022) with the Desktop
development with C++ workload — provides MSVC, the Windows SDK, and
cmake/rc.
- CMake 3.20+ (bundled with recent VS, or from cmake.org).
- Git for Windows — used to fetch MuPDF's source (and, for CJK/full font
coverage, MuPDF's
hexdump.sh font generator, which needs bash).
Install quickly with winget:
winget install --id Microsoft.VisualStudio.2022.BuildTools --override "--quiet --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended"
winget install --id Kitware.CMake
Fetch MuPDF (vendored under third_party/, not committed)
git clone --recurse-submodules --depth 1 https://github.com/ArtifexSoftware/mupdf.git third_party/mupdf
Configure and build
cmake -S . -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release --target pdfviewer
The result is build/Release/PDFast.exe. (The internal CMake target is still
named pdfviewer; only the output binary is PDFast.exe.)
Embedded fallback-font coverage (optional)
MuPDF embeds fallback fonts used only when a PDF doesn't embed its own. More
coverage = bigger .exe. Choose at configure time:
# base14 (default, ~5.5 MB) : standard Latin PDF fonts
# cjk (~34 MB) : + Chinese/Japanese/Korean
# full (~48 MB) : + Noto (Arabic, Hebrew, Thai, emoji, …)
cmake -S . -B build -DPDFVIEWER_FONTS=cjk
Publishing a release (for maintainers)
The in-app auto-updater checks the GitHub repo named in
src/updater.h (kGitHubRepo) — make sure that matches your
repo before your first release.
- Bump the version in
src/version.h (e.g. 1.2.0).
- Build Release (above); the artifact is
build/Release/PDFast.exe.
- On GitHub: Releases → Draft a new release, create a tag that matches the
version with a leading
v (e.g. v1.2.0), and drag PDFast.exe into the
assets box. The asset must be a .exe — that's what the updater
downloads (it grabs the release's first .exe asset).
- Publish. Everyone running an older build gets the update prompt on their next
launch; the download link is
https://github.com/<you>/<repo>/releases/download/v1.2.0/PDFast.exe.
The updater only works from a build that already contains it, so include it in
your first published release — otherwise the initial users have to update
once by hand.
License
This application is licensed under the GNU Affero General Public License v3.0
(see LICENSE). It statically links MuPDF, which is also AGPL v3.
What this means if you redistribute it: distributing the binary (e.g. a
public download) obliges you to make the complete corresponding source code
available under the AGPL — which this repository does. If instead you want to ship
a closed-source build, you must obtain a commercial MuPDF license from
Artifex; the AGPL does not permit closed-source
redistribution.