PDFium Delphi Component Docs

CharacterMapError Proprietà

Componente: TPdf  ·  Unità: PDFium
Restituisce True quando il carattere all'indice specificato non ha potuto essere mappato a un punto di codice Unicode valido. Il flag è riportato per carattere dall'estrattore di testo di PDFium e permette ai chiamanti di identificare i punti di codice probabilmente errati perché il font di origine non ha una CMap ToUnicode o un vettore di codifica utilizzabili

Syntax

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

IndexIndice di carattere a base zero nella pagina corrente, nell'intervallo da 0 a CharacterCount - 1

Description

CharacterMapError restituisce True quando PDFium ha incontrato un errore nella mappatura del carattere all'indice specificato a un punto di codice Unicode. Quando questo è True, il valore restituito da Character[Index] non è affidabile e spesso ricade su un carattere di sostituzione (#$FFFD) o sul passaggio diretto dell'identificatore di glifo sottostante

Il flag si presenta più spesso su PDF prodotti da driver di stampante e strumenti di conversione che incorporano subset di font senza una corrispondente CMap ToUnicode, o con una CMap che non copre l'intero insieme di glifi. PDF scansionati con testo OCR incorporato e PDF che usano vettori di codifica personalizzati sono tipiche fonti di errori di mappatura

I chiamanti che devono fare round-trip del testo da un PDF dovrebbero filtrare o annotare le occorrenze di CharacterMapError prima di trattarle come contenuto ricercabile. Un gruppo di errori di mappatura consecutivi di solito indica un'intera sequenza di stringa che dovrebbe essere ri-estratta attraverso OCR invece che tramite il livello di testo

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