Load and show a document
Document.Root loads the PDF; Viewer.Root owns zoom, layout and navigation; Viewer.Viewport scrolls; Viewer.Pages renders every page with a canvas and a text layer.
Copy to clipboard
Choose the page layers
Render pages yourself to pick their layers. Each layer is optional.
Copy to clipboard
Add a toolbar
Controls are parts too, so they read the viewer from context. Bind any state you need.
Copy to clipboard
Annotate and read like a researcher
Wrap the pages with Find.Root, Annotations.Root and Paper.Root, add their layers to each page and their floating parts anywhere inside.
Copy to clipboard
The full reader below combines everything on this site — open the source tabs to see how.
Every root exposes its state class:
bind:viewer, bind:store, bind:paper, bind:find. Use them for commands like viewer.focus({ dest: 'section.3' }) or store.exportPdf().