Als een PDF er correct uitziet, maar plakken in een teksteditor andere tekens oplevert, controleer dan de oorzaak voordat u het lettertype wijzigt of OCR uitvoert. De afbeelding tussen de vorm die op de pagina is getekend en het teken dat deze vertegenwoordigt, is mogelijk verkeerd. Het corrigeren van deze PDF-tekstfouten begint met het identificeren van welk deel van dat proces is mislukt.
Waarom kan tekst er goed uitzien, maar verkeerd worden gekopieerd?
PDF-tekstinhoud kan lettertypespecifieke brontekencodes opslaan in plaats van Unicode-tekst. Een PDF-lezer gebruikt het lettertype en de coderingsinformatie om een glyph te lokaliseren en te tekenen. Kopiëren vereist ook dat deze codes in betekenisvolle karakters worden vertaald.
Het tekenen van de letter A garandeert daarom niet dat extractie A zal opleveren. ToUnicode is een toewijzing in een lettertypewoordenboek die PDF-brontekencodes associeert met Unicode-tekenreeksen. Dit onderscheid tussen het weergeven en extraheren van tekst wordt beschreven in Adobe PDF-referentie, sectie 5.9.

Wat betekent lettertypetoewijzing eigenlijk?
Deze drie concepten zijn gerelateerd, maar ze zijn niet uitwisselbaar:
| In kaart brengen | Hoofdrol |
|---|---|
De cmap-tabel in een lettertypebestand | Wijst tekencodes toe aan glyph-indexen; Unicode-subtabellen gebruiken Unicode-codes |
| PDF-codering; samengestelde lettertypen kunnen een Encoding CMap gebruiken | Interpreteert PDF-brontekencodes en helpt bij het lokaliseren van de te tekenen glyph |
PDF ToUnicode | Wijst PDF-brontekencodes toe aan Unicode-tekst voor kopiëren en extraheren |
Voor de eerste soort, zie de OpenType cmap-specificatie. De hier besproken reparatie richt zich op de derde; het lettertypebestand wordt niet opnieuw opgebouwd en de glyphs op de pagina worden niet vervangen.
Een ontbrekende ToUnicode-toewijzing veroorzaakt niet altijd onleesbare tekst. Een PDF-lezer kan soms tekst herstellen uit een standaardcodering, bekende glyph-namen of een tekenverzameling. Omgekeerd kan er een toewijzingstabel bestaan die nog steeds onjuiste associaties bevat.
Controleer eerst of de mapping het probleem is
Kopieer een korte passage naar een teksteditor en vergelijk deze met de originele pagina:
| Symptoom | Wat u eerst moet controleren |
|---|---|
| De pagina ziet er correct uit, maar gekopieerde tekens veranderen consequent in andere tekens | Ontbrekende of onjuiste karaktertoewijzingen |
| U kunt alleen een afbeelding selecteren, geen tekst | Een ontbrekende tekstlaag of tekst omgezet naar contouren; overweeg het bronbestand of OCR |
| Op een gescande pagina kan tekst worden geselecteerd, maar deze komt niet overeen met de afbeelding | Herkenning resulteert in de tekstlaag OCR |
| Individuele tekens zijn correct, maar kolommen of tabellen zijn niet in de juiste volgorde | Leesvolgorde en lay-outextractie |
| De pagina zelf bevat ontbrekende tekens of vakken | Lettertypebronnen, glyph-dekking of weergavecodering |
Dit zijn aanwijzingen voor het oplossen van problemen, geen diagnoses die alleen op uiterlijk zijn gebaseerd. Het insluiten van lettertypen en het correct kopiëren zijn ook afzonderlijke aandachtspunten; zie PDF lettertype-insluiting en subsets.
Hoe kun je gekopieerde tekst corrigeren met behulp van de originele symbolen?
Stel dat de broncode <0001> in een bepaald lettertype A tekent, maar onjuist wordt toegewezen aan 错 (U+9519). Dit is een illustratief mappingfragment, geen compleet CMap-bestand:
Before: <0001> <9519>
After: <0001> <0041>
<0001> is een PDF-broncode in dat lettertype, niet het Unicode-teken U+0001. Door het toe te wijzen aan U+0041 wordt aangegeven dat de glyph A vertegenwoordigt. Een ligature (meerdere letters die één glyph delen) moet mogelijk ook worden toegewezen aan verschillende Unicode-tekens, zoals fi.
Nadat u hebt bevestigd dat kaartreparatie geschikt is, gebruikt u de PDF tekstreparatietool:
- Selecteer de PDF en selecteer vervolgens het lettertype dat u wilt corrigeren.
- Vergelijk de originele glyphs in het raster en voer de juiste tekst onder elke glyph in.
- Exporteer de gerepareerde PDF en bewaar het origineel ter vergelijking.
Overal waar hetzelfde lettertype en dezelfde broncode worden gebruikt, geldt een wijziging. Controleer verschillende lettertypen afzonderlijk, zelfs als hun namen overeenkomen. Als OCR slechts één woord verkeerd heeft herkend, kan het globaal opnieuw toewijzen van een teken ook tekst beschadigen die al correct was.
Hoe controleer je de reparatie?
Open het geëxporteerde bestand opnieuw en kopieer en zoek naar voorbeeldtekst in uw doel-PDF-lezer. Controleer andere exemplaren van dezelfde code en lettertypen die u niet hebt bewerkt. Vergelijk het uiterlijk van de pagina en inspecteer interpunctie, ligaturen en cijfers, in plaats van alleen het eerste onjuiste teken te testen.
Sommige PDF's gebruiken ook ActualText om vervangende tekst aan te bieden, waar ondersteunende software mogelijk de voorkeur aan geeft. Als het probleem niet is opgelost door het wijzigen van ToUnicode, controleer dan of deze overschrijving is uitgevoerd. De huidige tool waarschuwt voor ActualText, maar bewerkt deze niet. Zie de PDF Associatie-uitleg.
Bij OCR-fouten corrigeert of herkent u de tekstlaag opnieuw. Als u over het originele lay-outbestand beschikt, overweeg dan om dit te corrigeren en een nieuwe PDF te exporteren. Bestanden die niet openen of structurele fouten veroorzaken, hebben een andere aanpak nodig; zie wanneer herstel van het PDF-formaat geschikt is.
Zodra u een probleem met de toewijzing van lettertypetekens heeft geïdentificeerd, corrigeert u dit met de lokale PDF tekstreparatietool. Bestanden worden in uw browser verwerkt zonder ze te uploaden. Na het exporteren moet u nog steeds de gekopieerde tekst en het uiterlijk van de pagina verifiëren.


