property CharacterMapError[Index: Integer]: Boolean; // read only
| Index | Indeks znaku liczony od zera na bieżącej stronie, w zakresie od 0 do CharacterCount - 1 |
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ą
True, a bieżąca strona została przeanalizowana; w przeciwnym razie zwraca False
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;