property CharacterMapError[Index: Integer]: Boolean; // read only
| Index | Indeks karakter berbasis nol pada halaman saat ini, dalam rentang 0 sampai CharacterCount - 1 |
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
True dan halaman saat ini sudah diparse; selain itu ia mengembalikan False
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;