PDFium Component Docs

CharacterMapError Özellik

Bu API girdisi tanımlayıcıları, imzaları, kod bloklarını ve PDF terimlerini özgün biçiminde korur.
Bileşen: TPdf  ·  Birim: 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

Söz dizimi

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

IndexGeçerli sayfada 0 tabanlı karakter dizini, 0 ile CharacterCount - 1.

Açıklama

CharacterMapError returns True PDFium belirtilen dizindeki karakteri bir Unicode code point’e eşlerken hata verdiğinde oluşur. Bu durum True, the value returned by Character[Index] is unreliable and often falls back to a replacement character (#$FFFD) or to a passthrough of the underlying glyph identifier.

Bu bayrak en sık, karşılık gelen ToUnicode CMap olmadan font subset’leri gömen ya da tüm glyph set’i kapsamayan bir CMap kullanan printer drivers ve conversion tools tarafından üretilen PDF’lerde yükselir. Gömülü OCR text içeren taranmış PDF’ler ve custom encoding vectors kullanan PDF’ler tipik map error kaynaklarıdır

Callers that need to round-trip text from a PDF should filter or annotate CharacterMapError hits before treating them as searchable content. A cluster of consecutive map errors usually indicates an entire string run that should be re-extracted through OCR rather than via the text layer.

Notlar

Örnek

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;

Ayrıca bkz.

Character, Charcode, CharacterGenerated, CharacterCount, Text