property CharacterMapError[Index: Integer]: Boolean; // read only
| Index | Nollapohjainen merkin indeksi nykyisellä sivulla välillä 0 .. CharacterCount - 1 |
CharacterMapError palauttaa True, kun PDFium kohtasi
virheen kartoittaessaan määritetyn indeksin merkkiä Unicode-koodipisteeseen. Kun
tämä on True, ominaisuuden Character[Index]
palauttama arvo on epäluotettava ja putoaa usein korvausmerkkiin (#$FFFD)
tai taustalla olevan glyyfitunnisteen läpivientiin
Lippu nousee yleisimmin PDF-tiedostoissa, jotka tulostinajurit ja muunnostyökalut ovat tuottaneet upottaen fonttinosajoukot ilman vastaavaa ToUnicode CMapia tai CMapilla, joka ei kata koko glyyfijoukkoa. Skannatut PDF-tiedostot upotetulla OCR-tekstillä sekä custom-koodausvektoreita käyttävät PDF-tiedostot ovat tyypillisiä kartoitusvirheiden lähteitä
Kutsujien, joiden täytyy viedä teksti PDF:stä ja tuoda se takaisin, tulisi
suodattaa tai merkata CharacterMapError-osumat ennen niiden
käsittelyä haettavana sisältönä. Peräkkäisten kartoitusvirheiden ryhmä
osoittaa yleensä kokonaisen tekstijakson, joka pitäisi poimia uudelleen
OCR:n kautta tekstikerroksen sijaan
True ja nykyinen sivu on jäsennetty; muuten se palauttaa False
var
I, BadCount: Integer;
begin
BadCount := 0;
for I := 0 to Pdf.CharacterCount - 1 do
if Pdf.CharacterMapError[I] then
begin
Memo1.Lines.Add(Format('Map error at %d (charcode $%x)',
[I, Pdf.Charcode[I]]));
Inc(BadCount);
end;
Caption := Format('%d untranslatable characters on page', [BadCount]);
end;