PDFium Delphi Component Docs

CharacterMapError الخاصية

المكوّن: TPdf  ·  الوحدة: PDFium
يعيد True عندما يتعذر تعيين الحرف عند الفهرس المحدد إلى نقطة رمز Unicode صالحة. تُبلَّغ العلامة لكل حرف بواسطة مستخرج نصوص PDFium وتتيح للمستدعي تحديد نقاط رمز يحتمل أنها غير صحيحة لأن الخط المصدر يفتقر إلى ToUnicode CMap قابل للاستخدام أو متجه ترميز.

الصياغة

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 بدلًا من طبقة النص.

ملاحظات

مثال

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;

انظر أيضًا

Character, Charcode, CharacterGenerated, CharacterCount, Text