PDFium Delphi Component Docs

CharacterMapError Özellik

Component: TPdf  ·  Unit: PDFium
Belirtilen dizindeki karakter geçerli bir Unicode kod noktasına eşlenemediğinde True döndürür. Bayrak PDFium metin ayıklayıcısı tarafından karakter başına bildirilir ve çağıranların, kaynak yazı tipinde kullanılabilir bir ToUnicode CMap ya da kodlama vektörü olmadığı için muhtemelen hatalı olan kod noktalarını belirlemesine olanak tanır

Syntax

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

IndexGeçerli sayfada sıfır tabanlı karakter indeksi; aralık CharacterCount - 1'e kadar

Description

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

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