BookTranslator
BookTranslator

Hoe je een PDF met meerdere kolommen vertaalt zonder de leesvolgorde door elkaar te halen

Controleer hoe een PDF met twee kolommen leest voordat je hem vertaalt, kies op basis van die controle een workflow voor lay-outbehoud, OCR of herbouw, en controleer de vertaalde kolommen, bijschriften en overloop.

BookTranslator

BookTranslator Team

13 min read

Snel antwoord: controleer de leesvolgorde voordat je vertaalt

Een PDF met twee kolommen kan er netjes uitzien en toch de alinea's in de verkeerde volgorde aan een vertaaltool geven. Als dat gebeurt, kan de vertaling zin voor zin vloeiend zijn, terwijl de pagina als geheel niet meer klopt. Geen enkele tool kan zich uit een bron vertalen die in de verkeerde volgorde is gelezen.

De volgorde van het werk is dus:

  1. Controleer hoe de pagina leest. Kopieer één representatieve pagina en bevestig dat elke alinea eruit komt in de volgorde waarin een mens hem zou lezen.
  2. Kies de workflow op basis van die controle. Gebruik een PDF-vertaling die de lay-out behoudt wanneer de volgorde klopt, OCR-modus wanneer de tekst onbruikbaar is, en een converteer-en-herstel-route wanneer je een bewerkbaar bestand nodig hebt.
  3. Controleer de vertaalde kolommen. Let op de kolomovergang, figuurbijschriften, notities over de volle breedte, voetnoten en regels die te lang doorlopen.

De rest van deze gids laat zien waarom stap 1 niet overgeslagen kan worden, met een kleine test die je zelf kunt downloaden en uitvoeren. Het gaat over PDF's met een echte tekstlaag, zoals geëxporteerde rapporten, papers en nieuwsbrieven. Als je pagina's scans zijn, begin dan met hoe je een gescande PDF vertaalt.

Wat we hebben getest

Op 2026-10-20 hebben we drie PDF's van één pagina gemaakt van dezelfde tekst: een titel, een figuurkader bovenaan de linkerkolom, drie alinea's in elke kolom, een vetgedrukte notitie over beide kolommen en een voetnoot. Elke alinea begint met een markering van P1 tot P8, dus de juiste leesvolgorde is P1 tot en met P8.

Testpagina met twee kolommen met een figuurkader bovenaan de linkerkolom, alinea's P1 tot en met P3 eronder, P4 tot en met P6 in de rechterkolom, en een notitie over de volle breedte P7

De drie bestanden verschillen op manieren die je op het scherm niet kunt zien:

  • two-column-stream-logical.pdf slaat de tekst eerst in de linkerkolom op en dan in de rechterkolom.
  • two-column-stream-rowwise.pdf ziet er identiek uit maar slaat de regels rij voor rij op, afwisselend tussen de kolommen.
  • two-column-no-figure-rowwise.pdf slaat de tekst rij voor rij op en heeft geen figuurkader. Het is het controlebestand.

We hebben de tekst vervolgens geëxtraheerd met zeven gangbare open-sourcemethoden en de alinea-volgorde genoteerd die elke methode teruggaf:

ExtractorLogische opslag, figuurRij-voor-rij-opslag, figuurRij-voor-rij-opslag, geen figuur
pdftotext 26.08.0 (standaard)P4 P1 P5 P6 P2 P3 P7 P8P4 P1 P5 P6 P2 P3 P7 P8P1–P8 correct
pdftotext -rawP1–P8 correctP1 P4 P5 P2 P6 P3 P7 P8P1 P4 P5 P2 P6 P3 P7 P8
pdftotext -layoutP4 P5 P6 P1 P2 P3 P7 P8P4 P5 P6 P1 P2 P3 P7 P8P1 P4 P5 P2 P6 P3 P7 P8
pypdf 5.1.0 extract_text()P1–P8 correctP1 P4 P5 P2 P6 P3 P7 P8P1 P4 P5 P2 P6 P3 P7 P8
pdfminer.six 20240706P4 P5 P6 P1 P2 P3 P7 P8P4 P5 P6 P1 P2 P3 P7 P8P1–P8 correct
PyMuPDF 1.24.14 get_text()P1–P8 correctP1 P4 P5 P2 P6 P3 P7 P8P1 P4 P5 P2 P6 P3 P7 P8
PyMuPDF 1.24.14 get_text(sort=True)P4 P5 P6 P1 P2 P3 P7 P8P4 P5 P6 P1 P2 P3 P7 P8P1 P4 P5 P2 P6 P3 P7 P8

Geen van de zeven methoden had alle drie de bestanden goed. Elke methode die één bestand goed had, had een ander bestand fout. In het controlebestand drukten pdftotext -raw, pdftotext -layout en PyMuPDF met sort=True ook drie regels af die elk tekst uit beide kolommen mengden, precies wat een lezer ziet wanneer gekopieerde tekst over de kolomgoot loopt. PyMuPDF met sort=True produceerde ook in elk van de andere twee bestanden één zo'n regel.

De test is bewust klein: één synthetische Engelse pagina, zonder tags, gemaakt met ReportLab. Het rangschikt deze bibliotheken niet, en het testte geen enkel vertaalproduct, inclusief BookTranslator. Wat het laat zien is smaller en nuttiger: dezelfde ogende pagina kan een andere bronvolgorde opleveren, dus de enige betrouwbare controle is je eigen bestand.

Je kunt de test reproduceren met de fixture-generator, de drie PDF's (logisch, rij voor rij, zonder figuur), de volgordechecker, de extractor-runner die alle zeven methoden aanroept, en de resultaten-CSV.

Waarom dezelfde pagina in verschillende volgordes leest

Extractors gebruiken een van twee strategieën, en elk faalt op een ander bestand.

Strategie 1: volg de volgorde die in het bestand is opgeslagen. Een PDF tekent tekst in de volgorde waarin de maker het heeft geschreven. De poppler-handleiding beschrijft pdftotext -raw als het behouden van "de tekst in de volgorde van de contentstream" (en raadt die modus niet langer aan), en de documentatie van PyMuPDF zegt dat de standaarduitvoer platte tekst is "zoals het in het document is gecodeerd" (poppler pdftotext-handleiding, PyMuPDF tekstrecepten). Dat werkt wanneer het bestand tekst in leesvolgorde opslaat. Het faalt wanneer de opgeslagen volgorde rij voor rij is, zoals in ons tweede bestand, ook al ziet de pagina er hetzelfde uit.

Strategie 2: reconstrueer de volgorde op basis van waar de tekst op de pagina staat. De standaardmodus van pdftotext probeert tekst "in leesvolgorde" uit te voeren, pdfminer.six groepeert nabije regels in boxen en laat je "een horizontale en verticale positie" wegen bij het ordenen ervan, en PyMuPDF's sort=True sorteert "van linksboven naar rechtsonder" (pdfminer.six LAParams). Deze methoden negeren de opgeslagen volgorde, dus de logische en rij-voor-rij-bestanden geven identieke resultaten.

Het controlebestand verklaart de fout. Zonder de figuur lezen de standaardmodus van pdftotext en pdfminer.six beide P1 tot en met P8 correct. Voeg een figuurbox bovenaan de linkerkolom toe, en de eerste alinea rechts (P4) wordt de hoogste tekst op de pagina. Een methode die verticale positie weegt, begint de pagina daar.

Dit is een veelvoorkomend paginaontwerp, geen randgeval: papers openen de linkerkolom met een figuur of samenvattingsbox, tijdschriften beginnen een kolom onder een afbeelding, en handleidingen plaatsen een waarschuwingsbox boven de eerste stap. De notitie over de volle breedte (P7) en de voetnoot (P8) bleven in elke run op hun plaats, dus een controle die alleen naar de onderkant van de pagina kijkt, mist het probleem.

Stap 1: Controleer je eigen PDF in vijf minuten

De markeringen in ons testbestand bestaan niet in jouw document, maar dezelfde controle werkt met een paar zinnen die je zelf uitkiest.

  1. Kies de moeilijkste pagina, niet pagina één. Kies een tweekolommige pagina met een figuur, tabel of omkaderde notitie bovenaan een kolom, plus een kop of notitie over de volle breedte halverwege.
  2. Schrijf vijf ankerzinnen op, in leesvolgorde: de eerste woorden van de linkerkolom, de laatste woorden van de linkerkolom, de eerste woorden van de rechterkolom, het element over de volle breedte, en het bijschrift.
  3. Kopieer de hele pagina uit je PDF-viewer en plak deze in een platte-teksteditor. Als je een tool met een bronvoorbeeld gebruikt, gebruik dan dat voorbeeld, want het toont de volgorde die de tool daadwerkelijk heeft ontvangen.
  4. Zoek de ankers in de geplakte tekst. Ze moeten verschijnen in de volgorde die je hebt opgeschreven, en geen enkele regel mag woorden uit beide kolommen bevatten.
  5. Herhaal dit voor één ander paginatype, zoals een referentiepagina, een pagina met een zijbalk, of de eerste pagina van een hoofdstuk.

Interpreteer het resultaat als volgt:

Wat de geplakte tekst laat zienWat het meestal betekentVolgende stap
Ankers in volgorde, geen gemengde regelsTekst en leesvolgorde zijn bruikbaarLay-outbehoudende PDF-vertaling
Rechterkolom begint vóór de linkerkolomDe pagina wordt gelezen op verticale positieTest de vertaaltool op deze specifieke pagina voordat je voor het hele bestand betaalt
Regels vermengen tekst uit beide kolommenDe pagina wordt dwars over gelezenKopieer en plak niet; gebruik een bestandsgebaseerde workflow en test deze pagina
Alinea's springen tussen kolommenOpgeslagen volgorde is rij voor rij of onderbrokenTest een bestandsgebaseerde workflow; als die faalt, repareer of converteer eerst
Er plakt niets, of de tekens zijn verkeerdAlleen-afbeelding-pagina of een kapotte tekstlaagGebruik OCR; zie PDF-tekstextractie versus OCR

Kopiëren en plakken is een snelle controle, geen bewijs van wat een andere tool zal doen. Onze tabel laat zien dat twee tools hetzelfde bestand anders kunnen lezen. Het resultaat in jouw viewer vertelt je hoe riskant het bestand is. De preview van de tool zelf, of een testvertaling van één pagina, vertelt je wat die tool daadwerkelijk leest.

Als de tekst met de juiste letters plakt maar met kapotte spatiëring of regelafbrekingen, los dan de kopieer-plak-tekstproblemen op voordat je de kolomvolgorde beoordeelt.

Stap 2: Kies de workflow op basis van wat je zag

Kies de workflow op basis van de controle, niet op basis van de bewering van een tool dat deze je lay-out behoudt.

De volgorde is correct en de tekst is selecteerbaar. Vertaal de PDF als bestand, niet door stukken te plakken. Een lay-outbehoudende workflow plaatst de vertaalde tekst terug op de pagina, zodat de kolommen, figuren en kopregels blijven waar lezers ze verwachten. In BookTranslator is dat het standaardpad voor PDF-vertaling. Beschouw elke belofte om een lay-out te behouden, inclusief de onze, als iets dat je verifieert op de moeilijkste pagina die je in stap 1 hebt gevonden, niet als een garantie.

De volgorde breekt alleen bij figuren of kader elementen. Voer één probleempagina door je gekozen tool voordat je het hele document vertaalt. Als die pagina in de juiste volgorde uitkomt, gebruikt de tool niet dezelfde strategie als je kopieercontrole. Als die door elkaar komt, wijzig dan de workflow in plaats van te hopen dat de rest van het bestand zich anders gedraagt.

De pagina is gescand, of de tekstlaag is onbruikbaar. Gebruik OCR. De OCR-modus van BookTranslator leest de pagina-afbeelding en bouwt een schone vertaalde PDF op. Die pagina raadt het aan voor studieboeken, academische artikelen, tabellen en afbeeldingsrijke pagina's waar het behouden van de inhoud belangrijker is dan de exacte lay-out. We hebben het niet getest op de fixtures in deze gids. De afweging is expliciet: de OCR-modus probeert de oorspronkelijke lay-out, lettertypen of lettergroottes niet te behouden. Zie voor scans in het bijzonder hoe je een gescande PDF vertaalt.

Je hebt sowieso een bewerkbaar document nodig. Converteer de PDF naar Word, corrigeer daar de leesvolgorde en vertaal de DOCX. Dit kost de meeste moeite, maar het is de enige route waarbij je de alinea-volgorde direct kunt corrigeren vóór de vertaling. Het verandert ook de lay-out, dus gebruik het wanneer de uitvoer verder bewerkt wordt, niet wanneer deze op de oorspronkelijke pagina moet lijken.

Vermijd het plakken van kolommen in een chatbot of een tekstvak. Je wordt verantwoordelijk voor het handmatig reconstrueren van de volgorde, bijschriften en voetnoten, op elke pagina. Onze tabel laat zien hoe gemakkelijk die volgorde al vóór je begint misgaat.

Voor academische artikelen, waar hetzelfde probleem samengaat met vergelijkingen, citaties en referenties, volg je de workflow voor het vertalen van onderzoeksartikelen. Voor het algemene lay-outbehoudende proces voor alle PDF-typen, zie hoe je een PDF vertaalt met behoud van de opmaak.

Stap 3: Controleer de vertaalde kolommen

Een vertaling van meerdere kolommen faalt op plekken die een snelle blik mist. Controleer deze vijf plekken op elk paginatype dat je in stap 1 hebt getest:

  1. De kolomovergang. Lees de laatste zin van de linkerkolom en de eerste zin van de rechterkolom. Het betoog moet doorlopen, niet overspringen naar een andere alinea.
  2. Bijschriften en figuren. Elk bijschrift moet nog steeds onder de eigen figuur staan, vertaald, en mag niet in de bodytekst zijn beland.
  3. Elementen over de volle breedte. Koppen, notities en uitgelichte citaten die beide kolommen overspannen, moeten dat nog steeds doen en mogen niet in twee halve zinnen worden opgesplitst.
  4. Voetnoten en paginakoppen. Voetnootmarkeringen in de tekst moeten overeenkomen met de notities onderaan de pagina, en paginakoppen mogen niet midden in een alinea opduiken.
  5. Overloop in smalle kolommen. Vertaalde tekst is vaak langer dan de bron. De richtlijnen van het W3C over tekstgrootte bij vertaling noemen IBM-cijfers van ongeveer 130% lengte voor Engelse brontekst van meer dan 70 tekens bij vertaling naar Europese talen, met grotere toenames voor korte strings. Een smalle kolom heeft weinig ruimte voor die extra tekst, dus let op afgekapte regels, verkleind lettertype of tekst die over figuren heen valt. Koppen en tabelcellen lopen het vaakst over.

Voor de controle is een tweetalig bestand handig, maar de lay-out ervan is belangrijk. Als je bron en vertaling op dezelfde pagina zet, worden twee talen in al smalle kolommen geperst. In de standaard PDF-vertaling van BookTranslator (met OCR-modus uit) biedt de tweetalige PDF twee lay-outs, Zelfde pagina en Aparte pagina's. Kies voor documenten met meerdere kolommen Aparte pagina's: elke bronpagina wordt gevolgd door de vertaalde pagina, zodat elke kolom de oorspronkelijke breedte behoudt. Je kunt ook nog steeds de versie met alleen de vertaling downloaden. Onze QA-checklist voor PDF-vertalingen behandelt de overige controles op bestandsniveau.

Als de vertaalde PDF ook met schermlezers moet werken, is visuele volgorde niet genoeg. De getagde leesvolgorde moet apart worden gecontroleerd. Het W3C merkt op dat de leesvolgorde van getagde PDF's "voornamelijk wordt bepaald door de tagvolgorde van documentelementen" (W3C PDF3). Onze gids over toegankelijkheid van vertaalde PDF's laat zien hoe je dat test.

Wat deze gids niet beweert

  • Het is geen ranglijst van tools. De zeven extractors zijn gekozen omdat ze gangbaar en gemakkelijk opnieuw uit te voeren zijn. Elk ervan faalde op ten minste één van de drie bestanden, en een ander testbestand zou kunnen veranderen welke falen.
  • Er zijn geen vertaalproducten getest. We hebben BookTranslator, DeepL, Google Translate of een andere vertaler niet op deze bestanden uitgevoerd. De productbeschrijvingen hierboven komen uit de huidige producttekst van BookTranslator, niet uit deze test.
  • Eén pagina is geen document. Echte bestanden combineren verschillende paginadesigns, dus controleer ten minste twee paginatypes.
  • Getagde PDF's kunnen zich anders gedragen. Onze testbestanden zijn niet getagd. Een correct getagde PDF heeft een expliciete leesvolgorde die sommige tools gebruiken.

De praktische regel blijft toch gelden: ontdek hoe je PDF leest voordat je hem vertaalt. Als de volgorde klopt, vertaal het bestand en controleer de kolommen. Als die niet klopt, wijzig de workflow, niet de vertaalinstellingen.

Gerelateerde berichten

Hoe je een PDF met meerdere kolommen vertaalt zonder de leesvolgorde door elkaar te halen