PDFium Component Docs

CharacterMapError vlastnosť

Component: TPdf  ·  Unit: PDFium
Vráti True, keď znak na zadanom indexe nebolo možné namapovať na platný Unicode kódový bod. Príznak hlási extraktor textu PDFium po jednotlivých znakoch a umožňuje rozpoznať kódové body, ktoré sú pravdepodobne nesprávne, pretože pôvodné písmo nemá použiteľnú ToUnicode CMap alebo kódovaciu vektorovú mapu

Syntax

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

IndexIndex znaku so základom 0 na aktuálnej strane, v rozsahu 0 až CharacterCount - 1.

Description

CharacterMapError vráti True, keď PDFium narazil na chybu pri mapovaní znaku na zadanom indexe na bod Unicode. Keď je to True, hodnota vrátená Character[Index] je nespoľahlivá a často sa vráti na náhradný znak (#$FFFD) alebo na priepust podkladového identifikátora glyfu.

Príznak sa najčastejšie vyvoláva na PDF vytvorených ovládačmi tlačiarní a konverznými nástrojmi, ktoré vkladajú podmnožiny fontov bez zodpovedajúceho ToUnicode CMap, alebo s CMap, ktorý nepokrýva celú sadu glyfov. Skenované PDF so vloženým textom OCR a PDF, ktoré používajú vlastné kódovacie vektory, sú typickými zdrojmi chýb mapovania.

Volajúci, ktorí potrebujú obehnuť text z PDF, by mali predtým, ako ich budú považovať za prehľadávaný obsah, vyfiltrovať alebo anotovať zásahy CharacterMapError. Zoskupenie po sebe idúcich chýb mapovania zvyčajne označuje celý beh reťazca, ktorý by sa mal re-extrahovať prostredníctvom OCR namiesto cez textovú vrstvu.

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