PDFium Component Docs

CharacterMapError Właściwość

Ten wpis API zachowuje identyfikatory, sygnatury, bloki kodu i terminy PDF w oryginalnej postaci.
Komponent: TPdf  ·  Moduł: 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

Składnia

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

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

Opis

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

Flaga pojawia się najczęściej w plikach PDF tworzonych przez sterowniki drukarek i narzędzia konwersji, które osadzają podzbiory czcionek bez odpowiadającej im mapy ToUnicode CMap albo z mapą, która nie obejmuje pełnego zestawu glifów Zeskanowane pliki PDF z osadzonym tekstem OCR oraz pliki PDF używające niestandardowych wektorów kodowania są typowymi źródłami błędów mapowania

Wywołujący, którzy potrzebują odtworzyć tekst z pliku PDF w obie strony, powinni filtrować lub oznaczać trafienia CharacterMapError przed uznaniem ich za tekst możliwy do wyszukiwania Klaster kolejnych błędów mapowania zwykle oznacza cały przebieg ciągu, który należy ponownie odczytać przez OCR zamiast przez warstwę tekstową

Uwagi

Przykład

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;

Zobacz też

Character, Charcode, CharacterGenerated, CharacterCount, Text