property CharacterGenerated[Index: Integer]: Boolean; // read only
| Index | فهرس محرف يبدأ من الصفر على الصفحة الحالية، في النطاق من 0 إلى CharacterCount - 1. |
تُرجع CharacterGenerated True عندما يكون المحرف عند
الفهرس المحدد قد وُلّد داخليًا في PDFium بدلًا من أن يكون موجودًا في
مسار المحتوى الأصلي. ومن الأمثلة النموذجية: تفكيك الليغتشر (تقسيم رمز ليغتشر
fi إلى f + i)، والمسافة
الختامية التي يدرجها PDFium بين مساري نص متجاورين منفصلين بصريًا، و
محارف فاصل الأسطر المحقونة في نهاية كل سطر مرئي.
لا رسم خاص للمحارف المولَّدة في مسار محتوى الصفحة، لذا تُشتق صناديقها المحيطة من الرموز المجاورة. تعامل مع موقعها على الصفحة بحذر إذا كنت تحتاج اختبار إصابة دقيقًا على مستوى البكسل؛ فقد ينهار CharacterRectangle الخاص بها إلى منطقة عرضها أو ارتفاعها صفر.
في المهام كالاستخراج الحرفي الدقيق (التوقيعات الرقمية وسير عمل بصمة النص والمقارنة المطابقة لـ ASCII مع مسار محتوى الصفحة)، رشِّح المحارف المولَّدة أولًا. أما في البحث النصي العادي ونسخ الحافظة فالعلم مجرد معلومة استرشادية — إذ سبق لـ PDFium إدراج المحارف لأن المستخدمين يتوقعونها.
True شيوعًا؛ فلا تفترض أن المحارف المولَّدة رموز غير مرئية دائمًا.
// Build a verbatim string that contains only characters from the content stream
var
I: Integer;
S: WString;
begin
S := '';
for I := 0 to Pdf.CharacterCount - 1 do
if not Pdf.CharacterGenerated[I] then
S := S + Pdf.Character[I];
Memo1.Text := S;
end;