property CharacterMapError[Index: Integer]: Boolean; // للقراءة فقط
| Index | فهرس محرف يبدأ من الصفر على الصفحة الحالية، في النطاق من 0 إلى CharacterCount - 1. |
يعيد CharacterMapError قيمة True عندما يواجه PDFium خطأً في تعيين الحرف عند الفهرس المحدد إلى نقطة رمز Unicode. عندما يكون هذا True، تكون القيمة التي يعيدها Character[Index] غير موثوقة وغالبًا ما تعود إلى حرف استبدال (#$FFFD) أو إلى تمرير معرِّف المحرف الأساسي.
تُرفع العلامة غالبًا على ملفات PDF التي تنتجها برامج تشغيل الطابعات وأدوات التحويل التي تضمِّن مجموعات فرعية من الخطوط دون ToUnicode CMap مقابل، أو مع CMap لا يغطي مجموعة المحارف الكاملة. تعد ملفات PDF الممسوحة مع نص OCR مضمَّن وملفات PDF التي تستخدم متجهات ترميز مخصصة مصادر نموذجية لأخطاء التعيين.
يجب على المستدعين الذين يحتاجون نقل نص ذهابًا وإيابًا من ملف PDF تصفية أو تعليم ضربات 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;