PDF Reader — Full Feature Set
Used in both the Books section and the Research Papers section. The same viewer JS handles all PDFs site-wide.
currentPage + totalPages.isFullscreen state. Opens document in fullscreen via the Fullscreen API. Hint overlay shown first time.showDownload option. Public PDFs show download; password-protected PDFs may restrict it.Viewer UI Breakdown
Abstract
This paper presents a novel approach to embedded ML inference using TinyML frameworks. Performance benchmarks are compared across ARM Cortex-M4 and RISC-V cores...
Keywords: TinyML, Edge AI, RISC-V, Cortex-M4, Power Analysis
PDF Toolbar
Page navigation (prev/next), zoom controls with live percentage display, and download button. State: currentPage, totalPages, zoom level.
Search Bar
Persistent search field above the canvas. Type any word to highlight all matches in the document. PDF.js text layer enables this.
PDF Canvas
PDF.js renders each page onto an HTML5 canvas element. High-quality text rendering with selectable text layer overlay.
Swipe Hint
.pdf-swipe-hint overlay shown to first-time visitors. Arrows animate left/right. Hides after first swipe or after user dismisses it.
Fullscreen Button
Top-right of header. Uses Fullscreen API. isFullscreen boolean tracks state. A .fullscreen-hint overlay appears briefly on first entry.
Download Button
Shown only when showDownload: true option is passed. For password-protected PDFs, download may be intentionally disabled.
Keyboard Controls
Works on desktop when the PDF viewer is focused. Click anywhere on the PDF first.
| Key | Action | Notes |
|---|---|---|
| → / Page↓ | Next page | Queues if still rendering (pageNumPending) |
| ← / Page↑ | Previous page | |
| Home | First page | Jumps to page 1 |
| End | Last page | Jumps to page totalPages |
| + / = | Zoom in | 10% per step |
| - | Zoom out | 10% per step |
| Ctrl+F | Open search | Focuses the search input |
| F | Fullscreen | Toggle fullscreen mode |
| Esc | Exit fullscreen |
Mobile vs Desktop
- Swipe left/right to change pages
- Pinch-to-zoom — two finger spread/pinch
-
touch-action: noneon canvas prevents page scroll during zoom - Swipe hint overlay shown on first open
- Fullscreen via the expand button
- No keyboard shortcuts
- Full keyboard navigation (arrows, home, end)
- Ctrl+F opens search box
- +/- keys for zoom
- Mouse scroll within the canvas
- Larger canvas — more text visible at once
- F key toggles fullscreen
Lesser-Known Tricks
If you tap "Next" while a page is still rendering, the viewer queues it in pageNumPending. As soon as the current page finishes, the queued page renders automatically — no missed taps.
Some Book PDFs require a password (added by the add_pdf_password.py tool). The viewer detects the password requirement and shows an input prompt before loading pages.
The viewer is initialized with options: { showDownload: true/false, allowZoom: true, downloadName: 'filename.pdf' }. The Only-Boss manager sets these per-document.
Code Reference
Other Feature Guides
More deep-dives into A3KM Studio features — shortcuts, hidden tricks, mobile vs desktop comparisons and code references.