PDFium Delphi Component Docs

CharacterMapError-ominaisuus

Component: TPdf  ·  Unit: PDFium
Palauttaa True, kun määritetyn indeksin merkkiä ei voitu yhdistää kelvolliseen Unicode-koodipisteeseen. PDFiumin tekstinpoimija raportoi lipun merkki kerrallaan ja auttaa tunnistamaan koodipisteet, jotka ovat todennäköisesti virheellisiä, koska lähdefontista puuttuu käyttökelpoinen ToUnicode CMap tai koodausvektori

Syntax

property CharacterMapError[Index: Integer]: Boolean; // read only

IndexNollapohjainen merkin indeksi nykyisellä sivulla välillä 0 .. CharacterCount - 1

Description

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

Remarks

Example

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;

See Also

Character, Charcode, CharacterGenerated, CharacterCount, Text