PDF & images
Reference material lives next to your notes. Link a PDF with a wiki-link or drop one onto a note and it opens in a dedicated viewer tab; paste or drag an image into a note and it renders inline.
Link a PDF with [[file.pdf]] or , or drop one onto a note,
to open it in a dedicated viewer tab.
A viewer that scales
Section titled “A viewer that scales”The viewer is page-virtualized: only pages near the viewport are rasterized, and scrolled-away pages free both their memory and their GPU texture. An 800-page document stays light. Rendering is DPI-aware, so pages stay crisp on high-resolution displays.
Zoom, page navigation, and a table of contents for jumping around a long
document. Two fit modes live next to the zoom controls: ↔ fits the page
width to the viewer, ⤢ fits the whole page — both stay in effect as you
resize the window, until you zoom manually.
Highlight markup
Section titled “Highlight markup”Drag to highlight a passage in a PDF. Each highlight becomes a markup with note↔PDF jump links: follow it from your note to land on the right page, or from the PDF back to where you wrote about it.
Next to the highlight pen sits the area tool (⬚): drag a box over any
region — a figure, a chart, a scanned page with no text layer at all — and it
becomes a markup exactly like a text highlight, same colors and jump links.
Password-protected PDFs
Section titled “Password-protected PDFs”Encrypted PDFs are supported — both RC4 and AES. Zorite prompts for the password and renders the document once it’s unlocked. On the rare file Zorite can’t parse at all (an exotic encryption scheme, unusual features), the viewer offers Open in system viewer to hand it to your OS default app instead.
Fill in forms
Section titled “Fill in forms”A PDF with form fields (AcroForm) is fillable right in the viewer. Click a checkbox or radio button to toggle it. Click a text field and a small input appears seated under it — type, then Enter (or click away) saves, Esc cancels, and Tab / Shift-Tab hop field to field, scrolling each into view. Edits are written back into the stored PDF with proper appearance streams, so the filled file renders correctly in every other PDF viewer too. Signature and read-only fields stay untouched. Choice fields (dropdowns and lists) offer their options as a click-to-pick list under the input — typing still works for combos that allow free entry.
Under the hood
Section titled “Under the hood”PDF rendering is pure-Rust via hayro, so
there are no native dependencies. The viewer is its own reusable
gpui-pdf
crate.
Inline images
Section titled “Inline images” images render for real in your notes. To add one, paste
or drag-and-drop a file — it’s copied into the data directory’s images/
folder, so the note doesn’t depend on where the original lived. Importing the
same image twice (paste or drag, any page) reuses the existing copy instead of
duplicating it, and Settings → General → Unused images sweeps files nothing
references anymore into the system trash (with a confirmation listing them
first).
Drag the corner handle to resize an image; the new size is saved back into
the Markdown as {width=N}, so it stays the size you set the next time the note
renders.
Export a note to PDF
Section titled “Export a note to PDF”Right-click a tab or a sidebar page and pick Export as PDF… (or press
⌘P / Ctrl+P on the active note). The export renders like the reading view
— wrapped styled text, tables, inline images, alerts, typeset math, and
mermaid diagrams — written by a pure-Rust PDF writer, no browser or print
dialog involved.
One known limitation: the writer places glyphs directly without a text-shaping
pass, so font ligatures (the ->/=> arrows of a font like JetBrains
Mono, or a serif’s fi) render in the app but come out as their individual
characters in the exported PDF. The text is unaffected — only the glyph
substitution is skipped.