PDFium Delphi Component Docs

CharacterMapError Egenskap

Component: TPdf  ·  Unit: PDFium
Returnerar True när tecknet på det angivna indexet inte kunde mappas till en giltig Unicode-kodpunkt. Flaggan rapporteras per tecken av PDFiums textextraherare och låter anropare identifiera kodpunkter som sannolikt är felaktiga eftersom det ursprungliga teckensnittet saknar en användbar ToUnicode CMap eller kodningsvektor.

Syntax

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

IndexNollbaserat teckenindex på den aktuella sidan, i intervallet 0 till CharacterCount - 1

Description

CharacterMapError returnerar True när PDFium stötte på ett fel vid mappningen av tecknet vid det angivna indexet till en Unicode-kodpunkt. När detta är True är värdet som returneras av Character[Index] opålitligt och faller ofta tillbaka på ett ersättningstecken (#$FFFD) eller på en direkt genomsläppning av den underliggande glyfidentifieraren

Flaggan höjs oftast på PDF-dokument som skapats av skrivardrivrutiner och konverteringsverktyg som bäddar in teckensnittsdelmängder utan en motsvarande ToUnicode CMap, eller med en CMap som inte täcker hela glyfuppsättningen. Inskannade PDF-dokument med inbäddad OCR-text och PDF-dokument som använder anpassade kodningsvektorer är typiska källor till mappningsfel

Anropare som behöver föra text fram och tillbaka från ett PDF-dokument bör filtrera eller annotera CharacterMapError-träffar innan de behandlas som sökbart innehåll. En samling på varandra följande mappningsfel indikerar vanligtvis ett helt textavsnitt som bör extraheras igen via OCR i stället för via textlagret

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