PDFium Component Docs

CharacterMapError Właściwość

Component: TPdf  ·  Unit: PDFium
Zwraca True, gdy znak pod wskazanym indeksem nie mógł zostać odwzorowany na poprawny punkt kodowy Unicode Flaga jest raportowana osobno dla każdego znaku przez ekstraktor tekstu PDFium i pozwala wywołującym wykryć punkty kodowe, które najpewniej są błędne, ponieważ czcionka źródłowa nie ma użytecznej mapy ToUnicode CMap ani wektora kodowania

Syntax

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

IndexIndeks znaku liczony od zera na bieżącej stronie, w zakresie od 0 do CharacterCount - 1

Description

CharacterMapError zwraca True, gdy PDFium napotkał błąd podczas mapowania znaku pod wskazanym indeksem na punkt kodowy Unicode. Gdy flaga ma wartość True, wartość zwracana przez Character[Index] jest zawodna i często spada do znaku zastępczego (#$FFFD) lub do przejścia identyfikatora bazowego glifu

Flaga jest najczęściej podnoszona w plikach PDF tworzonych przez sterowniki drukarek i narzędzia konwertujące, które osadzają podzbiory czcionek bez odpowiadającej im mapy ToUnicode CMap lub z CMapem, który nie pokrywa pełnego zestawu glifów. Skanowane pliki PDF z osadzonym tekstem OCR oraz pliki PDF używające niestandardowych wektorów kodowania to typowe źródła błędów mapowania

Wywołujący, którzy muszą przenosić tekst z pliku PDF w obie strony, powinni filtrować lub adnotować trafienia CharacterMapError, zanim zaczną traktować je jako zawartość przeszukiwalną. Klaster kolejnych błędów mapowania zwykle wskazuje cały przebieg tekstowy, który należy wyodrębnić ponownie przez OCR, a nie przez warstwę tekstową

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