property CharacterMapError[Index: Integer]: Boolean; // read only
| Index | אינדקס תו מבוסס-אפס בעמוד הנוכחי, בטווח 0 עד CharacterCount - 1. |
CharacterMapError מחזיר True כאשר PDFium נתקל בשגיאה
במיפוי התו באינדקס שצוין לנקודת קוד Unicode. כאשר הדגל הוא
True, הערך שמחזיר Character[Index]
אינו אמין ולרוב נופל בחזרה לתו החלפה (#$FFFD) או
להעברה ישירה של מזהה ה-glyph שבבסיס.
הדגל מועלה לרוב ב-PDFs שנוצרו על ידי מנהלי הדפסה וכלי המרה שמטמיעים תתי-קבוצות גופנים ללא CMap של ToUnicode מתאים, או עם CMap שאינו מכסה את מלוא קבוצת ה-glyphs. PDFs סרוקים עם טקסט OCR מוטמע ו-PDFs שמשתמשים בווקטורי קידוד מותאמים הם מקורות טיפוסיים לשגיאות מיפוי.
קוראים שצריכים להעביר טקסט מ-PDF בכיוון השני (round-trip) צריכים לסנן או לסמן
פגיעות CharacterMapError לפני שהם מתייחסים אליהן כתוכן הניתן לחיפוש. אשכול
של שגיאות מיפוי רצופות מצביע בדרך כלל על רצף מחרוזת שלם שיש
לחלץ מחדש באמצעות OCR ולא דרך שכבת הטקסט.
True והעמוד הנוכחי נותח; אחרת הוא מחזיר 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;