property CharacterMapError[Index: Integer]: Boolean; // read only
| Index | Geçerli sayfada sıfır tabanlı karakter indeksi; aralık CharacterCount - 1'e kadar |
CharacterMapError, PDFium belirtilen indeksteki karakteri bir Unicode code point'e
eşlerken hata ile karşılaştıysa True döndürür. Bu değer
True olduğunda Character[Index]'in döndürdüğü
değer güvenilmezdir ve sıkça bir değiştirme karakterine (#$FFFD) veya
altta yatan glif tanımlayıcısının aynen geçirilmesine düşer
Bayrak en çok, karşılık gelen ToUnicode CMap'i olmayan font alt kümelerini gömen veya glif kümesinin tamamını kapsamayan bir CMap kullanan yazıcı sürücüsü ve dönüştürme araçlarının ürettiği PDF'lerde görülür. Gömülü OCR metinli taranmış PDF'ler ve özel encoding vektörleri kullanan PDF'ler tipik map error kaynaklarıdır
Bir PDF'ten metni kayıpsız geri çevirmesi gereken çağıranlar,
CharacterMapError isabetlerini aranabilir içerik saymadan önce süzmeli veya işaretlemelidir. Art arda gelen map error kümesi, genellikle metin katmanı
yerine OCR üzerinden yeniden çıkarılması gereken bir string run'ının tamamına
işaret eder
True ve geçerli sayfa çözümlenmişken anlamlıdır; aksi hâlde False döndürür
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;