Page-for-Page / MoDoc AI

Layout-preserving PDF translation

The AI compares both pages as images — and keeps fixing until they match.

Run a formatted report through an ordinary translator and you get text. The charts, the score bars, the boxed findings — the parts that actually carry the result — are gone. Page-for-Page renders the original and the translation side by side, looks at them, and corrects whatever does not line up — then looks again. Same trim size, same charts with the same values, same colours, same running heads.

It is an open-source Claude skill. Install it and run your own documents through it.

SourceOutputSourceOutput
Two page pairs side by side: a Korean report cover next to its English translation, then a Korean chart page next to its English translation, each matching page for page
Trim size
A4 · 8.27 × 11.70 in
Chart bands
40 / 20 / 40 %
Band fill
#F2D79A
Bar fill
#7A2E6D
Row pitch
0.547 in
Axis scale
70.5 px / unit

Values read out of the source file itself — not estimated.

How it works

Measure, rebuild, then check by eye.

Every colour, band width, row pitch and axis position already exists in the source file. The work is reading them out instead of approximating them by eye — which is the difference between a page that matches and one that only nearly does.

1

Measure the original

Trim size, exact hex fills, chart geometry and type scale are read from the file at 150 dpi. Values that exist only as pixels — a normative range, a mean marker — are recovered by measurement rather than dropped or invented.

2

Pick the route that holds

Where the layout is dense and graphical, the text layer is replaced in place and every logo and chart stays the original vector. Where the target language runs longer and needs to reflow, the page is rebuilt from the measurements. The fit is checked before committing either way.

3

Compare, correct, repeat

Both files are rendered to page-pair images and read side by side: bar directions, arrow directions, label attachment, missing glyphs, and every number against the original. Whatever is off gets fixed and the pages are rendered again. Two or three rounds is normal — and none of it is visible to a text diff, which is why the check has to be a look.

Proof

Diagrams are where a translation breaks.

Prose is the easy part. A flow chart is not: the meaning lives in arrow direction, in which label is attached to which node, and in the order the nodes are read. Every word can be translated correctly and the picture can still say something else — and a text diff will report no difference at all. That is the reason the check has to be a look.

A four-node cycle diagram in Korean above the same diagram in English: same node positions, same arrow directions, same labels
One-way cycle, four nodes, a label under each and a caption pointer into the middle. Same positions, same directions, same attachment — the artwork is the original vector, only the text layer changed.
The same diagram twice: in the first pass one arrow of the cycle is reversed and ringed in red, in the corrected version it points the right way
The first pass drew one arrow of the cycle backwards. Nothing in the text was wrong, so nothing flagged it — it was caught by rendering both pages and reading them, then redrawn. This is that failure reproduced on the public sample; two or three such rounds is normal.

Then every page, side by side

A five-page assessment report, Korean to English. Source on the left of each pair, output on the right. The graded band chart keeps its bar values and sides, the facet chart keeps its midzone marks, and the practitioner chart keeps its range bars, mean ticks and scores.

SourceOutput
Pages three and four side by side: the clarity chart and the facet chart with descriptor boxes
Pages 3–4 — the style clarity chart and the facet chart with its in-preference / midzone / out-of-preference bands.
SourceOutput
Pages one, two and five side by side: cover, definitions grid, and practitioner summary chart
Pages 1, 2 and 5 — cover, the eight-cell definitions grid, and the practitioner summary with normative range bars.
About this sample

The document shown is a fictional assessment instrument — invented publisher, invented respondent, invented scores — built so the example can be shown publicly. It does not correspond to any real instrument, organisation or person. The reversed arrow above is a real failure class, reproduced here on that sample rather than screenshotted from the document it was first caught on.

Run it yourself

Install it and point it at your own PDF.

Two commands. Then ask Claude to translate a PDF and mention that the format should stay the same — it picks the route, measures the source, lifts the logos, and checks its own output. Everything below is in the repository: the skill, the scripts, the reference notes, and the sample document shown above.

# in Claude Code or Cowork
/plugin marketplace add modocai/pdf-translate-layout
/plugin install pdf-translate@modoc

Needs poppler-utils, ImageMagick, and Python pillow · pymupdf · playwright. A bundled preflight script checks all of it.

What you get

  • A measurement toolkit — trim size, palette, band edges, row pitch, axis scale, and chart values recovered from pixels.
  • Two translation routes, with the fit checked before either is committed.
  • Artwork extraction, so logos are the original marks rather than hand-drawn approximations.
  • Page-pair comparison tooling for the review step.
  • Tested reference notes for CJK, right-to-left, Thai, Indic and European targets.

No tokens, no setup

Or just email it to us.

Running this costs Claude tokens, and not everyone has them to spend — or wants to install a toolchain to translate one document. Email the PDF and the language you want and we will run it and send the result back.

No account, no payment page. We are doing this because we want to see what people bring us.

Well suited to

  • Assessment and diagnostic reports
  • Lab and medical results
  • Certificates and school records
  • Regulatory and compliance forms
  • Financial statements and fact sheets
  • Manuals with figures and callouts

Tell us the target language. If the document is confidential, say so before you send anything and we'll agree how to handle it — or just run the skill yourself, which keeps the file on your own machine.

Honest scope
  • Verified on Korean → English, English → Korean and English → German. Other pairs use the same method; right-to-left targets are documented but not yet verified end to end.
  • Where a logo cannot be lifted from the source it is approximated, and that is stated in the delivery. Output is a translation, never a reissue of an original.
  • Translations that run shorter than the source can leave whitespace the original does not have. We report it rather than padding with invented text.
  • Scanned PDFs with no text layer need an OCR pass first.