PDFium Component Docs

CharacterMapError Eigenschap

Deze API-entry behoudt identifiers, signatures, codeblokken en PDF-termen in hun oorspronkelijke vorm.
Component: TPdf  ·  Unit: PDFium
Geeft True terug wanneer het teken op de opgegeven index niet kon worden gemapt naar een geldig Unicode-codepunt. De vlag wordt per teken gerapporteerd door de PDFium-tekstextractor en laat aanroepers codepunten identificeren die waarschijnlijk onjuist zijn omdat het bronfont geen bruikbare ToUnicode CMap of coderingsvector heeft

Syntaxis

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

IndexTekenindex op basis van 0 op de huidige pagina, in het bereik 0 tot CharacterCount - 1

Beschrijving

CharacterMapError geeft True terug wanneer PDFium een fout tegenkwam bij het mappen van het teken op de opgegeven index naar een Unicode-codepunt. Wanneer dit True is, is de waarde die door Character[Index] wordt teruggegeven onbetrouwbaar en valt zij vaak terug op een vervangend teken (#$FFFD) of op een passthrough van de onderliggende glyph-identificatie

De vlag wordt het vaakst gezet bij PDF's die zijn geproduceerd door printerdrivers en conversietools die fontsubsets insluiten zonder overeenkomstige ToUnicode CMap, of met een CMap die niet het volledige glyph-bereik dekt. Gescande PDF's met ingebedde OCR-tekst en PDF's die aangepaste coderingsvectoren gebruiken zijn typische bronnen van mapfouten

Aanroepers die tekst uit een PDF heen en terug moeten kunnen verwerken, moeten CharacterMapError-treffers filteren of annoteren voordat ze die als doorzoekbare inhoud behandelen. Een cluster van opeenvolgende mapfouten duidt meestal op een hele tekenreeks die opnieuw via OCR moet worden uitgelezen in plaats van via de tekstlaag

Opmerkingen

Voorbeeld

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;

Zie ook

Character, Charcode, CharacterGenerated, CharacterCount, Text