Blog · PDF tips

How to translate PDF documents more accurately

The French page had a two-column form. The English download was one column, in the right language, with the case number correct and the checkbox labels in an order I had to rebuild. I was not surprised. I had been surprised the first time, years ago, by a different tool that promised “layout-preserving translation” and returned a poster with overlapping lines. I would rather have a clean column and twenty minutes of layout than a poster I cannot edit.

What the pipeline can see

Translate PDF needs text. A scan has no text until you OCR it and check the OCR. I translate the corrected text, not the first OCR pass. Translating a misread digit translates the error into a language where the reviewer may be less able to spot it. The case number 1050 must not become 1860 in French. Numbers are not a place to show trust.

The text is sent to the Worker for translation. Do not send a document your agreement says must stay on one machine. A shorter excerpt is still a transmission. Split to the pages you need, and leave the rest untranslated until there is a reason.

SourceTranslation behaviorReview I insist on
Digital text, one columnUsually a faithful draftNames, numbers, negatives
Two columns, captions, footnotesLinear text. Footnotes may land in the bodyPut footnotes back. Check that a caption did not become a clause
Scan, no OCRMissing lines, or nothingStop. OCR, proof, then translate
Mixed languages on one pageMay translate the part that was already in the target language, or skip a lineMark which lines must stay in the source language
Defined legal termsA plain synonym that is not the term of artGlossary. I keep “force majeure” or I use the firm’s term, not the model’s

A glossary I paste above the job

Eight terms, the way the client writes them in English, the way they must appear in French. I put that list at the top of the text I submit when the tool lets me include notes, or I fix the eight terms after, with search. Search is more reliable than hoping the model obeyed a glossary it half-saw. I search the target-language file for the forbidden synonym. If “résiliation” was required and the draft says “annulation,” I replace it. I do not restyle the whole paragraph while I am there. One bug at a time.

Names of people and streets stay as in the source unless there is a known transliteration the client uses. The model will “translate” a surname that looks like a noun. I have had a family name turned into an adjective. The fix is a search for each proper noun from the source. Tedious, short, and the only reason I will sign my name to the draft.

Dates and units: 04/07/2026 is 4 July or 7 April depending on who wrote the source. The translation must not “clarify” this into the wrong day. I keep the original numeric form and I add the month in letters only when I know the convention. Currency symbols stay. A model that converts dollars to euros at a rate it remembers is not doing you a favor. I have seen that conversion presented as if it were in the source. It was not. I search for the euro sign when the source was dollars.

Layout, after the words are right

I rebuild only the pages someone will sign or file. Internal reading copies can stay linear. A form that must be filled by hand gets its boxes back in a layout tool, with the translated labels. I do not stretch the linear export and call it the form. Boxes that do not align are how people write the answer on the wrong line.

I keep the source PDF beside the translation. When a reviewer asks “what did this say,” I open the source at the same case number, not at “roughly the middle.” Case numbers are the index. Page numbers drift because the translation is not the same length. A German clause runs long. A heading wraps. The page of the signature moves. Say so in the transmittal, or someone will initial the wrong page of a packet you later merge.

Machine translation of a contract is a draft for a person who knows both languages and the deal. I do not send it to the other party as the operative text. I have watched a softened negation in translation become the version everyone quoted, because it was the version in the shared folder. Label the file draft-translation until counsel says otherwise. The label is part of the work. The fluent paragraph is not a promotion to “final.”

If a line is untranslated, look at the source. It is often a logo, a stamp, or a line the extractor skipped. OCR that line alone or type it. Do not ask the model to “fill in” a blank from context. Context is how it invents a clause that was a smudge.

A checkbox that flipped because the label moved

The source had “Yes” on the left and “No” on the right, with the mark on No. The linear translation listed the labels in an order I reconstructed from memory as Yes first, and I nearly rebuilt the form with the mark on the first box. Memory of “the usual order” is not the page. I looked at the scan again, cropped the two labels, and typed them in the order they appeared, mark included as a note in the margin of the draft: “mark is on No, right-hand box.” The translator had not seen the mark. Marks are often path graphics, not text. A translation of the words without a note about the mark is an incomplete form. I treat every checked box as a separate fact I copy by eye.

Bilingual files that must stay bilingual: I do not run the whole page through and hope one language remains. I extract, I cut the sentences that are allowed to change, I translate those, and I paste them back under the sentences that must remain. It is slower than one button and it does not silently translate the legal name of the court. The court name was in the glossary. The button does not have a “leave this span alone” control I can trust under deadline. The cut-and-paste does, because the span I did not cut cannot change.

I read numbers aloud in the target language while looking at the source. The mouth catches a dropped zero that the eye skims when the sentence is grammatical. This is dull. It is also the review that caught a monthly fee turned into an annual fee by a word the model added for “fluency.” The digits were the same. The unit word was new. Digits-only review would have missed it. Read the unit.

Proper nouns in addresses get the same aloud pass. A street translated into a common noun is a delivery failure, not a style nit. I have a building that became “the mill” because that is what the name meant in the other language. The courier did not have a building called the mill. The source name went back in, untranslated, and the rest of the sentence stayed in the target language. Mixed lines look odd and they arrive.