PDFium Delphi Component Docs

CharacterMapError property

Component: TPdf  ·  Unit: PDFium
Mengembalikan True ketika karakter pada indeks yang ditentukan tidak dapat dipetakan ke code point Unicode yang valid. Flag dilaporkan per karakter oleh text extractor PDFium dan membantu pemanggil mengenali code point yang kemungkinan salah karena font asalnya tidak memiliki ToUnicode CMap atau encoding vector yang dapat dipakai

Syntax

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

IndexIndeks karakter berbasis nol pada halaman saat ini, dalam rentang 0 sampai CharacterCount - 1

Description

CharacterMapError mengembalikan True ketika PDFium menemui galat saat memetakan karakter pada indeks yang ditentukan ke code point Unicode. Ketika nilainya True, nilai yang dikembalikan Character[Index] tidak dapat diandalkan dan sering jatuh ke karakter pengganti (#$FFFD) atau ke oper passthrough dari identifier glyph di baliknya

Flag paling sering muncul pada PDF yang dihasilkan driver printer dan alat konversi yang menyematkan subset font tanpa ToUnicode CMap yang sesuai, atau dengan CMap yang tidak menutup seluruh set glyph. PDF hasil pemindaian dengan teks OCR tersemat dan PDF yang memakai encoding vector kustom adalah sumber galat pemetaan yang tipikal

Pemanggil yang perlu memutar-balikkan teks dari sebuah PDF sebaiknya menyaring atau menganotasi hit CharacterMapError sebelum memperlakukannya sebagai konten yang dapat dicari. Sekelompok galat pemetaan yang berurutan biasanya menandakan satu run string utuh yang sebaiknya diekstrak ulang melalui OCR, bukan lewat text layer

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