Open the appClassical Edition Comparison

Anyone who has collated editions knows the routine.
Three different editions of the same book, spread open, hunting for the same leaf in each and matching character by character.

Open three PDF viewer windows and every time you turn one you have to find and turn the others.
Spot a variant character and there’s nowhere to mark it, so you end up noting it in a separate memo.

This tool spreads up to eight editions across one screen as vertical panels.
You can draw colored marks straight onto the page, and the original PDF is never touched.
Shortcuts are packed in tightly so your hands can stay on the keyboard.

How to Use

  1. Click the button at the top-right or drop PDF files anywhere on the page.
  2. The screen automatically splits into 1 – 8 vertical panels based on the number of files.
  3. Click a panel to make it the active panel (pink outline) — the target of keyboard shortcuts.
  4. Drag the entire top toolbar of a panel to reorder; the other panels slide aside automatically.
  5. The last slot order and the last-viewed page are auto-restored. On reopening, files load → fit-to-height → jump to last page.

Panel toolbars

With eight panels open you’d have dozens of buttons, and then the text you came to read disappears behind them.
So buttons show up only on the panel you’re working with and stay hidden elsewhere.

  • Top toolbar: panel number · filename · ✕ close (drag to reorder)
  • Bottom toolbar: page input · total pages · fit-height · mark-mode toggle · download marked PDF
  • Close (✕): confirms before removing.

Pages / Zoom / Pan

  • Page navigation: PageUp / PageDown, Home / End, or type a page number directly
  • Pan: ↑ ↓ ← → (Shift for faster movement), or mouse drag
  • Zoom: + / -, Ctrl + wheel, or 0 to reset to 100 %
  • F: fit page to panel height

Marks (annotations)

When you spot a variant character you can mark it right there.
Marks are stored separately and the original PDF is not altered in the slightest.

  1. Press M or click the ✎ button on the active panel to enter mark mode.
  2. Drag on the page to draw a rectangle.
  3. Choose from 5 pastel colors; press C to cycle.
  4. Click an existing mark to delete it. Use Ctrl+Z to undo accidental deletions.
  5. Shift+X: clear all marks on the current page.

Color labels

Once you’re using five colors, “was red for a misprint or a dropped character?” starts to blur.
Give each color a name and it appears as a small badge under the mark.

  • In the settings modal, set up to 12 characters per color.
  • If left empty, no badge is rendered (only the rectangle).
  • Badge size is identical across panels and printouts (absolute pixel size).

Settings and Saving

Options (settings modal)

The ⚙ button opens a single modal containing all options.

  • Page sync: when changing pages on the active panel, all other panels jump to the same page number.
  • Expand selected panel: makes the active panel ~1.5× wider; others narrower.
  • Page alignment: which side of the page appears first when changing pages (default: right — recommended for vertical script).

Options and color labels are saved together with the cloud data, so pulling on another device restores your settings as well.

Cloud sync (Google sign-in)

Share marks · labels · options across devices. Adding a new PDF does not automatically pull cloud data — you must click “Pull from cloud” explicitly to avoid confusion.

  • Sign in: click the person icon at the top-right to open a Google sign-in popup.
  • Profile menu: click your profile photo after signing in to view your name/email and a sign-out action.
  • Save to cloud (☁︎↑): activates when there are unsaved changes. Click to push immediately.
    • Auto-save every 30 minutes when there are pending changes.
    • Push on close: closing the tab/browser pushes pending changes immediately.
  • Pull from cloud (☁︎↓): opens a modal listing every file with a version dropdown. Files where you have local marks are highlighted with an overwrite warning.
  • Auto-attention: after a page is loaded and PDFs are auto-restored, if any of those files are also stored in the cloud, the “Pull from cloud” button flashes with an orange outline for 10 seconds to draw your attention.
  • Versioning: up to 5 versions per file. 30-minute interval — within 30 minutes the latest version is overwritten; after 30 minutes a new version is appended (oldest auto-removed when over 5).
  • File limit: up to 10 files per user (LRU — adding the 11th removes the oldest file).

Same-file auto-matching

  • When PDFs are transferred between computers (email, messengers, web downloads), lastModified is often updated.
  • If exact matching (name + size + lastModified) fails, the app falls back to name + size matching to recognize the same file.
  • The “Pull from cloud” modal uses this matching to flag conflicts (files where you have unsaved local marks).

Import / Export

The two arrow icons at the top of the settings modal handle JSON backup / restore.

  • Export: saves the active slots’ marks, options, and color labels as a single JSON.
  • Import: applies to active slots matching by fileKey. Color labels and options are restored as well.
  • Format: { name, size, lastModified, annotations } items + colorLabels + options (fileKey is reconstructed automatically).

Printing and Export

Print

The 🖨 button opens the print modal.

  • Current screen: prints the header and slot grid exactly as you see it on a landscape A4 page. The pastel background, top-left home/language buttons, bottom-right tip-jar widget, footer, and the active-slot red highlight are all excluded from the printout. (The browser print dialog’s “Headers and footers” option is separate — turn it off for a cleaner result.)
  • 1 / 2 / 3 / 4 panels per A4 (visual diagrams shown):
    • 1 / 4 panels print as A4 portrait; 2 / 3 panels as A4 landscape automatically.
    • Marks and color badges are printed at the same position on the PDF.
    • Each panel header shows the filename and current / total page numbers.
    • The output PDF embeds JPEG images to keep file size small (working printouts, not archival).

Download marked PDF ({original}_marked.pdf)

The button in the active panel’s footer downloads a new PDF with mark rectangles and color badges merged directly into the original PDF.

  • Rectangle fill / stroke / opacity and badge placement (below the rectangle, or above when there isn’t enough room) match what you see on screen.
  • Korean labels are rendered to a canvas with system fonts and embedded as PNGs — no separate font download is required.
  • Only pages with annotations are processed, and the same (color · label · font-size) badge is embedded once and reused to keep memory and file size down.
  • Memory limits: pdf-lib loads the entire PDF object graph into memory, so very large files (700 MB / 3 000 pages) may fail or freeze the tab due to browser memory limits. A confirmation dialog is shown on click; files at or above 0.5 GB get an extra ⚠ warning.

Reset mark data

  • Reset cloud data: affects every device and cannot be undone — a confirmation is required.

Good to Know

Shortcuts at a Glance

ActionShortcut
Select panel 1 – 81 ~ 8
Previous / next pagePageUp / PageDown
First / last pageHome / End
Pan (Shift = faster), or drag
Zoom in / out+ / -, Ctrl + wheel
Reset zoom / fit height0 / F
Toggle mark modeM
Cycle mark colorC
Clear marks on current pageShift + X
Undo mark add / deleteCtrl + Z
Open print modalCtrl + P

Notes

  • A maximum of 8 panels can be open simultaneously.
  • Canvas resolution is automatically capped at extreme zoom levels to protect memory.
  • Cloud usage is designed to fit within Firebase’s free tier (1 GB storage, 20K daily writes); the 30-minute interval helps keep within those limits.
  • “Reset cloud data” affects every device, so use it carefully.
  • For very large PDFs (700 MB / 3 000 pages), “Download marked PDF” may fail due to browser memory limits — the click confirmation dialog warns you about this.

Open the appClassical Edition Comparison