المكونات الأساسية
- TPdf — مكون رئيسي لمعالجة مستندات PDF لفتحها والتنقل فيها واستخراج النصوص وتحرير مستندات PDF
- TPdfView — مكون مرئي لعرض صفحات PDF والتفاعل معها
- TPdfReadingSession — مكون تنسيق القراءة الجهرية لمحركات النطق الخارجية وتتبع كلمة TPdfView
- TPdfThumbnailView — لوحة جانبية قابلة للتمرير للصور المصغرة للتنقل بين الصفحات
عمليات المستندات
- تحميل المستندات — تحميل ملفات PDF من القرص أو streams الذاكرة أو مصفوفات البايتات أو محولات TStream عند الطلب عبر
LoadCustomDocument. تقرأ PDFium الكتل عند الطلب بحيث لا تحتاج المستندات متعددة الجيجابايت أو المصادر البعيدة / المعتمدة على قواعد البيانات إلى نسخة مسبقة في الذاكرة.- الحماية بكلمة مرور — فتح مستندات PDF المحمية بكلمة مرور والإبلاغ عن الصلاحيات الفعّالة
UserPermissionsللجلسة المُصادَق عليها- إنشاء المستندات — بناء مستندات PDF جديدة من الصفر باستخدام
CreateDocumentوAddPageوAddTextوAddImageوAddPictureوAddJpegImageوCreatePath- حفظ المستندات — حفظ المستندات المعدلة بخيارات متنوعة (تدريجي، إزالة الأمان) وإصدارات هدف PDF صريحة من PDF 1.0 إلى PDF 1.7
- إخراج PDF/A-1b —
SaveAsPdfA/SaveAsPdfAToStreamيعالجان الحفظ الأساسي بعد ذلك بتحديث تدريجي يحقن مجرى بيانات XMP وصفية وOutputIntent ICC من نوع sRGB وCatalog مستند مُحدَّث بحيث تكون النتيجة متوافقة مع PDF/A-1b. ملفات تعريف ICC المخصصة مدعومة عبرTPdfASaveOptions.IccProfileData.- التحقق من PDF/A —
ValidatePdfAوخاصية القراءة فقطPdfAConformanceتفحصان مستندًا مفتوحًا بحثًا عن علامات XMPpdfaidوOutputIntent مع ICC مضمن ووجود التشفير، وتقدمان مستوى التوافق (pac1a،pac1b،pac2b،pac3b،pacNone، أوpacUnknown) إضافة إلى قائمة من إدخالاتTPdfAValidationIssueتصف كل مشكلة تم العثور عليها- مدقق التوافق مع إصدار PDF — عندما يستهدف SaveAs PDF 1.0 إلى PDF 1.7، يرفض الكاتب أي إدخال قاموس أو filter أو نوع فرعي للتعليق التوضيحي أو نوع إجراء أو خط أو مساحة لون أو معامل تشفير تم تقديمه بعد الإصدار الهدف المختار (مثل JBIG2Decode، MarkInfo، OutputIntents، AES / AES-256، تعليقات Polygon / Caret / Watermark / Redact، إجراءات JavaScript / Trans / SetState)
- ضغط Stream — ضغط FlateDecode تلقائي يضمن أن جميع streams PDF مضغوطة على النحو الأمثل عند الحفظ؛ اضبط
Compressed := Falseللانسحاب لخطوط أنابيب التصحيح- دمج المستندات — استيراد صفحات من مستندات PDF أخرى
- استيراد مجموعة فرعية من الصفحات —
ImportPagesByIndexينسخ مصفوفة فهارس صريحة بدءًا من الصفر من مستند مصدر، حيث InsertAt = 0 للإدراج قبل الصفحة 1 أو InsertAt = PageCount للإلحاق في النهاية. مرّر مصفوفة فهارس فارغة لاستيراد كل صفحات المصدر.- تركيب N-up —
ImportNPagesToOneيُرجعTPdfجديدًا تمامًا، صفحاته مركبات NumX×NumY من صفحات المستند المصدر، بأبعاد محسوبة بوحدات مستخدم PDF (1 وحدة = 1/72 بوصة)- إعادة ترتيب الصفحات —
MovePagesيعيد ترتيب الصفحات في مكانها باستخدام مصفوفة فهارس بدءًا من الصفر وفهرس الوجهة للصفحة الأولى المنقولة- إعادة استخدام صفحات Form XObject —
CreateXObjectFromPageيصنع مقبضTPdfXObjectقابلًا لإعادة الاستخدام من أي صفحة في مستند آخر؛InsertFormObjectFromXObjectيدرج نسخة واحدة من الصفحة الملفوفة في الصفحة الحالية. مثالي للعلامات المائية وتراكبات القوالب وسير عمل «ختم صفحة واحدة على عدة صفحات». يمكن تحديد موضع كائن صفحة الوجهة وتحجيمه وتدويره عبرFPDFPageObj_SetMatrixومساعداتTPdfMatrix.- إدارة الصفحات — إضافة وحذف ومعالجة الصفحات الفردية؛
AddPage(0, ...)يُدرج الصفحة الأولى ويُنشّطها فورًا- صناديق الصفحة — قراءة وكتابة MediaBox وCropBox وBleedBox وTrimBox وArtBox على الصفحة الحالية
- لغة Catalog — قراءة وكتابة لغة المستند المخزنة في إدخال Catalog /Lang
- معرّفات ملف Trailer — قراءة إدخالات /ID الثابتة والمتغيرة في Trailer كبايتات ثنائية
- إجراءات JavaScript على مستوى المستند — تعداد أسماء الإجراءات والسكريبتات في شجرة أسماء JavaScript على مستوى المستند
- شجرة بنية Tagged PDF — فحص عناصر البنية المنطقية ونص الإتاحة واللغة ومعرّفات المحتوى الموسوم والتسلسل الهرمي لصفحات Tagged PDF
- تفضيلات العارض — قراءة
PrintCopiesوPrintPageRangesوPrintScalingوPrintPaperHandlingمن قاموس تفضيلات العارض في المستند؛ مستندات PDF المحفوظة تعتمد افتراضيًا على إجراء فتح Fit Height للصفحة الأولى
عمليات النصوص
- استخراج النصوص — استخراج النصوص من صفحات PDF بدقة على مستوى الحرف عبر خصائص
TextوTextInRectangleوCharacterالمُفهرسة وCharacterRectangleوCharacterOrigin- وحدات قراءة على مستوى الجملة - توفر TPdf.ReadingUnits و TPdf.DocumentReadingUnits و TPdfView.ReadingUnits و BuildReadingUnits سجلات TPdfReadingUnit بحجم الجملة للاستماع عبر TTS المتزامن
- تمييز القراءة كلمة بكلمة -
TPdf.PageWordBoxes,TPdfView.PageWordBoxes,BuildWordBoxes,WordBoxIndexAtCharIndex,TPdfView.SelectWordBox,TPdfView.SelectWordSpan,TPdfView.TrackReadingWordAt,TPdfView.SetReadingWord,TPdfView.ClearReadingWord,ReadingWordColor,ReadingWordFollowيربط إزاحة حرف الصفحة مع TPdfWordBox الذي يحتويها ويميزها ويعيد فهرس الكلمة; يميز TPdfWordBox واحدا كالكلمة المنطوقة الحالية في TPdfView; يمسح طبقة مؤشر القراءة كلمة بكلمة الحالية في TPdfView; تتحكم في لون الطبقة المستخدم لمؤشر القراءة كلمة بكلمة الحالي; تتحكم فيما إذا كان TPdfView يمرر الكلمة المنطوقة الحالية إلى العرض أثناء تتبع القراءة- تنسيق جلسة القراءة الجهرية —
TPdfReadingSession،TPdfSpokenText،SpokenTextAppend،BuildSpokenTextFromWords،SpokenToPageChar، وEstimateSpokenWordIndexتنسق محركات النطق، والمقاطع المنطوقة، واستدعاءات موضع الكلمة، والتقدير الزمني، ومعالجة الإيقاف المؤقت والاستئناف، وتحديثات مؤشر الكلمة فيTPdfView- البحث النصي — العثور على النص بخيارات الحساسية لحالة الأحرف والكلمات الكاملة والبحث المتتالي باستخدام
FindFirstوFindNextوFindPrevious- طبقة تمييز نتائج البحث —
TPdfView.HighlightSearchTextيفحص صفحة العرض الحالية ويرسم طبقةHighlightColorمدمجة بالألفا فعليًا فوق كل تطابق في كل إعادة رسم، ويُرجع عدد التطابقات.ClearHighlightيزيل الطبقة؛ الانتقال إلى صفحة أخرى يمسحها تلقائيًا لأن التطابقات خاصة بالصفحة.HighlightColorيأخذ القيمة الافتراضيةclYellowوهو منشور بحيث يمكن للتطبيقات تغيير سمته.- خصائص الحروف — الوصول إلى حجم الخط والوزن والزاوية والموضع لكل حرف عبر الخصائص المُفهرسة
CharacterAngleوCharacterFontSizeوCharacterFontWeightوCharacterGeneratedوCharacterIsHyphenوCharacterMapError- دعم الحروف الأوروبية — يحمّل
AddTextويخزّن مؤقتًا خط TrueType المنظومي المطابق قبل إنشاء كائن نص، بحيث تُعرَض الحروف ذات اللكنات في التشيكية والفرنسية والألمانية والإسبانية والبرتغالية والبولندية والتركية، التي لا تستطيع خطوط PDFium القياسية المدمجة تمثيلها، بشكل صحيح الآن دون أي تغيير في الكود- إضافة النصوص — إضافة نصوص جديدة إلى صفحات PDF مع خطوط مخصصة وألوان وشفافية وتدوير
- تحديد موضع كائنات النص — تعيين مواضع لكل حرف لكائنات النص الموجودة عبر
SetTextPositionsوTPdfSingleArray- معلومات الخطوط — استرجاع خصائص الخطوط بما في ذلك اسم العائلة وحالة التضمين وزاوية الخط المائل والصعود/الهبوط وبيانات الخط الخام لكل كائن صفحة
دعم التعليقات التوضيحية
- أنواع التعليقات التوضيحية — دعم لأنواع التعليقات النصية والروابط والتمييز والتسطير والشطب وأنواع أخرى عديدة من التعليقات التوضيحية
- إنشاء التعليقات التوضيحية — إنشاء تعليقات توضيحية جديدة برمجيًا
- تحرير التعليقات التوضيحية — تعديل خصائص التعليقات الموجودة بما في ذلك اللون والشفافية والمحتوى
- تعليقات الروابط — معالجة الروابط الداخلية والخارجية مع دعم الإجراءات
دعم النماذج
- وصولات تعبئة النماذج بالصوت - توفر FocusedFormFieldValue و FocusedFormFieldName و FocusedFormFieldDetails في TPdf و TPdfView قيمة واسم و TPdfFormFieldInfo لحقل النموذج المنطقي الحالي لتعبئة النماذج بلوحة المفاتيح أو الصوت
- أنواع النماذج — دعم لنماذج AcroForm و XFA
- تعبئة النماذج — تعبئة تفاعلية للنماذج مع دعم JavaScript
- اختيار V8 DLL — اضبط
EnableV8Engineقبل التحميل لاستخدامpdfium.v8.dllمن المجلد المطابقDLLs\Win32أوDLLs\Win64، واستعلم عن توفر مساعدات V8/XFA عبرV8FeaturesAvailableوXfaBStrHelpersAvailableوGetRecommendedV8Flags- الوصول إلى الحقول — قراءة وكتابة قيم حقول النماذج حسب الفهرس أو الموضع
- معلومات الحقول — الوصول إلى نوع الحقل وأعلامه واسمه وخصائص أخرى
- أعلام الحقول — تحديث أعلام حقول AcroForm حسب الفهرس أو الموضع عبر
SetFormFieldFlags/SetFormFieldFlagsAt، بما في ذلك أعلام للقراءة فقط والمطلوب وكلمة المرور والاختيار المتعدد- تسطيح النماذج —
GenerateFormAppearancesيعيد إنشاء مجرى المظهر /AP لكل عنصر نموذج (widget) في كل صفحة، وFlattenPage/FlattenAllPagesيثبتان التعليقات التوضيحية وحقول النماذج كمحتوى ثابت في الصفحة (غير قابل للتحرير)- تحديد نصوص عناصر النماذج والتراجع/الإعادة — على عنصر AcroForm widget المركّز، يُتيح العارض
GetSelectedFormText(النص المحدد حاليًا) وSelectAllFormText(تحديد كل حرف) وFormUndo/FormRedo/FormCanUndo/FormCanRedo(لتشغيل سجل تحرير PDFium لكل عنصر). جميع الستة تنتهي بأمان عندما يكون العرض غير نشط أو لا يوجد عنصر مركّز.
عمليات الصور
- استخراج الصور — استخراج الصور النقطية (bitmaps) من صفحات PDF بخاصية
Bitmapالمُفهرسة؛ تكرارBitmapCountلحفظ كل صورة على القرص- إدراج JPEG —
AddJpegImageيأخذ TStream لبايتات JPEG الخام ويُضمِّن الصورة كـ /DCTDecode XObject بدون إعادة ترميز- دعم Picture —
AddPictureيقبل كائنTPictureمع تحويل تنسيق تلقائي من خلال فئات الرسوميات المسجلة في VCL/LCL- إدراج الصور المباشر —
AddImage(FileName)يتعرف على أي تنسيق مسجل في وحدات الرسوميات VCL أو LCL (BMP، PNG عبر PngImage، JPG، ...) ويشترك في خط أنابيب AddPicture.AddImage(TBitmap)يتخطى وسيط TPicture، مما يبسط على المستدعين الذين يمتلكون TBitmap بالفعل من أعمال العرض أو التوليد الدفعي.- ملف تعريف ICC للصور — كائنات صفحة الصور تعرض بيانات ملف تعريف ICC المضمن فيها عند وجوده (ربط لـ
FPDFImageObj_GetIccProfileDataDecoded)- توليد الصور المصغرة — توليد صور مصغرة نقطية للصفحات عبر خاصية
Thumbnailأو عبرTPdf.RenderPageThumbnailلأي صفحة بدءًا من الواحد من دون تغييرPageNumber
وحدات المساعدة
- البنية التحتية للمعالجة غير المتزامنة — تعرض
FPdfAsyncالواجهاتIPdfCancellationToken/IPdfCancellationTokenSourceلدلالات الإلغاء التعاوني من واجهة المستخدم، وsingleton قابل لإعادة الاستخدامPdfNoCancellationToken، ومساعد خفيفTPdfFuture<T>يُشغّل عاملاً على خيط في الخلفية ويُرسل مظروفTPdfFutureResult<T>عائدًا إلى الخيط الرئيسي، مع تمييز حالات النجاح والإلغاء والفشل- محوّل Stream —
TPdfStreamAdapterيربطTStreamالخاص بـ Pascal بـ callbacksFPDF_FILEACCESSالخاصة بـ PDFium بحيث يقرأLoadCustomDocumentالكتل عند الطلب بدلاً من تخزين PDF كاملاً في الذاكرة- تركيب المصفوفات — يلف
FPdfMatrixFS_MATRIXالخاص بـ PDFium بواجهة كائنية المنحى لـTranslateوScaleوRotateوHorizontalFlipوVerticalFlipوCentralFlipوSkewوMultiply. يلتقطMultiplyلقطة من عناصر المصفوفة الستة قبل حساب قيم الصفوف الجديدة، متجنبًا فخ التطبيق البديل في Pascal الذي تُكتب فيه العناصر المبكرة فوق بعضها خلال نفس الاستدعاء وينتج تركيبات غير صحيحة.- عرض تدريجي قابل للإلغاء — يُشغّل
TPdf.RenderPageProgressiveحلقةFPDF_RenderPageBitmap_Start+RenderPage_Continueالخاصة بـ PDFium ويستطلعIPdfCancellationTokenبين التكرارات عبر callbackIFSDK_PAUSEبحيث يمكن للعروض الطويلة عالية الدقة DPI أن تجهض في منتصف الصفحة بدلاً من الحجب حتى الاكتمال. يُرجعTPdfProgressiveStatusبقيمةprsDoneأوprsCancelledأوprsFailed.- مسار العرض بدون نسخ —
RenderPage/RenderTile/RenderPageProgressiveتكتب مخرجات PDFium مباشرة في مخزن DIB الخاص بـTBitmapالوجهة بدلاً من المرور عبر مخزن داخلي، مما يوفر نسخة ذاكرة width × height × 4 بايتات لكل عرض — الأكثر ملاحظة عند DPI عالٍ (لوحات الصور المصغرة، تصدير بجودة الطباعة، التصدير الدفعي). يُحتفظ بمسار احتياطي لكل سطر مسح ضوئي عندما لا يمكن لف DIB الوجهة بأمان.- تحويلات ألوان bitmap لضعف البصر - تحوّل InvertPdfBitmap و GrayscalePdfBitmap و DuotonePdfBitmap بكسلات TBitmap المعروضة 32 بت في مكانها لطرق عرض معكوسة أو رمادية أو ثنائية اللون لضعف البصر
- العرض الحي لضعف البصر - يدعم
TPdfView.OptionsالعلمينreInvertوreNightDuotone، بينما تتحكمNightDuotoneInkوNightDuotonePaperفي لوحة ألوان العرض الليلي قبل رسم الطبقات العليا
عمليات الرسم
- رسم المسارات — إنشاء مسارات بخطوط ومنحنيات بيزييه وأشكال مغلقة
- إزالة الكائنات — إزالة كائنات الصفحة وإعادة توليد محتوى الصفحة من TPdf أو TPdfView
- التعبئة والحد — تكوين وضع التعبئة والألوان والشفافية وخصائص الحد
- أوضاع المزج — دعم لأوضاع مزج PDF المختلفة
- أنماط الخط — تكوين نهاية الخط ووصل الخطوط وعرض الحد
التوقيعات الرقمية
- اكتشاف التوقيعات — اكتشاف وتعداد التوقيعات الرقمية في مستندات PDF
- معلومات التوقيع — الوصول إلى محتويات التوقيع ونطاق البايتات والمرشّح الفرعي والسبب والوقت
- صلاحيات MDP — الاستعلام عن صلاحيات اكتشاف وحظر تعديل المستند
دعم المرفقات
- الوصول إلى المرفقات — قراءة وإنشاء وتعديل وحذف الملفات المرفقة المضمنة
- أسماء المرفقات — الوصول إلى أسماء ملفات المرفقات
- أنواع المرفقات — قراءة قيم النوع الفرعي MIME للملفات المضمنة عند وجودها
- العلامات المرجعية (Bookmarks) — التنقل في العلامات المرجعية للمستند مع دعم هرمي عبر مصفوفة
Bookmarksومساعدات الاجتيازBookmarkChildrenوHasBookmarkChildrenوBookmarkFrom- الوجهات المسماة — الوصول إلى الوجهات المسماة حسب الفهرس أو الاسم عبر
DestinationوDestinationByNameوDestinationCount- تسميات الصفحات — استرجاع تسميات الصفحة لكل صفحة عبر
PageLabel؛ مفيد عندما تستخدم المستندات الأرقام الرومانية للمواد التمهيدية- روابط الويب — اكتشاف روابط الويب والتنقل فيها على الصفحات عبر
WebLinkوWebLinkCountوTPdfView.WebLinkAtPos- تعليقات الروابط — الوصول إلى تعليقات الروابط مع معلومات الإجراء والوجهة عبر
LinkAnnotationوLinkAnnotationCountوTPdfView.LinkAnnotationAtPos- معالجة آمنة لنقرات الروابط — يُطلق TPdfView أحداث
OnAnnotationLinkClick/OnWebLinkClickقبل معالجة goto / URI التلقائية، مع تعطيل إجراءات Launch افتراضيًا. يعمل اكتشاف نقر الروابط فقط عندما تكون الإيماءة نقرة وليست سحبًا، باستخدام مرساة MouseDown جديدة بحيث تستمر إيماءات السحب في التدفق عبر مسار التمرير الموجود دون تغيير.
العرض
- عرض عالي الجودة — عرض الصفحات إلى سياق الجهاز أو bitmap أو tile عبر
RenderPage/RenderTile، مع كتابة مباشرة بدون نسخ في مخزن DIB الوجهة- عرض تدريجي قابل للإلغاء —
RenderPageProgressiveيُشغّل حلقة العرض التدريجية لـ PDFium ويستطلعIPdfCancellationTokenبين التكرارات، ويُرجعprsDoneأوprsCancelledأوprsFailed. يحتفظ bitmap بالعمل الجزئي المنجز حتى الآن عند الإلغاء.- خيارات العرض — تحسين نص LCD (
reLcd)، التعليقات التوضيحية (reAnnotations)، تدرج الرمادي، وأعلام وضع الطباعة- خطافات Skia — روابط منخفضة المستوى
FPDF_RenderPageSkiaوFPDF_FFLDrawSkiaمتاحة عندما يوفر المستدعون SkCanvas خارجيًا (يعتمد على صادرات DLL المرفقة)- اختيار وضع الطباعة — تعيين أوضاع طباعة PDFium التالية EMF، نص فقط، PostScript، تمرير مباشر، قناع صور، Type 42 عبر
SetPdfPrintModeمعTPdfPrintMode- طبقة غير متزامنة — يمكن لـ TPdfView عرض طبقة تحميل اختيارية أثناء قيام عمال خاصين بالتطبيق بالعرض باستخدام instances منفصلة من TPdf
- تدوير الصفحة — دعم للتدوير بزوايا 0 و 90 و 180 و 270 درجة (
ro0،ro90،ro180،ro270)- اكتشاف الشفافية — خاصية
Transparentتُبلغ عما إذا كان أي كائن على الصفحة الحالية يحتوي على شفافية، بما في ذلك أوضاع المزج والألفا الجزئي
العرض (TPdfView)
- أوضاع العرض —
dmSingleContinuous،dmTwoPageContinuous، وdmTwoPageContinuousWithCover(صفحة الغلاف تقف وحدها، ثم تستمر بصفحتين منتشرتين). مساعد على مستوى الوحدةComputeSpreadPagesيعرض حساب الصفحات المنتشرة دون إنشاء instance لعارض.- وضع الملاءمة —
FitModeيختار كيفية ملاءمة الصفحة في منطقة العرض:pfmNone(تكبير يدوي)،pfmActualSize(100%)،pfmFitPage(الصفحة بكاملها تتسع في منطقة العرض)، وpfmFitWidth(عرض الصفحة يطابق عرض منطقة العرض). يُعاد تطبيق وضع الملاءمة النشط تلقائيًا عند Resize وعند تغيير الصفحة الحالية؛ تعيين Zoom مباشرة يلغي وضع الملاءمة النشط (يعود FitMode إلىpfmNone)، مطابقًا اصطلاح عارضات PDF القياسية.- التحكم في التكبير — تكبير متغير مع مساعدات لكل صفحة
PageZoomوPageWidthZoomوPageHeightZoomوActualSizeZoom- لون الصفحة —
PageColorيفصل خلفية صفحة PDF المعروضة عنColorالخاص بعنصر التحكم المحيط. الافتراضي هوclWhite، بحيث تُعرَض صفحات PDF الآن بلون أبيض ورقي بغض النظر عن سمة التطبيق المضيف. يمكن للعارضات في الوضع الداكن الحفاظ على منطقة التمرير داكنة بينما تبقى صفحة PDF الفعلية بيضاء (أو أي لون يختاره التطبيق).- تحديد النصوص التفاعلي — للمستخدم النهائي السحب لتحديد النصوص على صفحات PDF، مع التبديل التلقائي بين التحديد والتحريك بناءً على hit-test: النقر على حرف يبدأ سحب تحديد، النقر على مسافة بيضاء يحرك. النقر المزدوج يحدد الكلمة، النقر الثلاثي يحدد السطر،
Ctrl+Aيحدد الصفحة (كلتا الصفحتين في وضع الصفحات المنتشرة)،Ctrl+Cينسخ كـCF_UNICODETEXT،Shift+arrowsيمد التحديد، التحويم فوق نص يحول المؤشر إلىcrIBeam، والسحب نحو حافة العارض يحرك الصفحة تلقائيًا. منشورات جديدةSelectionColorوOnSelectionChange؛ عامة جديدةHasSelection،SelectedText،SelectionCharCount،ClearSelection،SelectAll،CopySelectionToClipboard. أوضاع العرض المنتشرة تحدد عبر كلتا الصفحتين المرئيتين مع وصل CR/LF. تظهر قائمة Copy المنبثقة عند النقر بالزر الأيمن افتراضيًا عندما لم يُعيّن المضيفPopupMenuالخاصة به. مُحكَم بعلمAllowUserTextSelectionالذي أُدخل في v1.17.0 للمضيفين الذين يحتاجون لكشك.- تعيين الإحداثيات — تحويل بين إحداثيات جهاز العارض وإحداثيات صفحة PDF عبر
DeviceToPage/PageToDevice، بما في ذلك التحميلات الزائدة التي تأخذTRectوتُرجعTPdfRectangle- تحديد النصوص واختبار الإصابات — تحديد الحروف تحت نقاط العارض عبر
CharacterIndexAtPosورسم تمييزات تحديد النصوص عبرPaintSelection- الماوس ولوحة المفاتيح — دعم كامل لأجهزة الإدخال مع تمرير سحب الماوس واختصارات PgUp / PgDn / Ctrl+Home / Ctrl+End وتنقل صفحات wheel-up / wheel-down. Ctrl+wheel محجوز لتكبير التطبيق ويتم تخطيه بواسطة معالج التنقل.
- قفل إدخال المستخدم —
AllowUserPageChangeيتحكم في اختصارات صفحات لوحة المفاتيح،ChangePageOnMouseScrollingيتحكم في قفزات صفحة العجلة، وAllowUserTextSelectionيتحكم في إدخال تحديد النص بالماوس / لوحة المفاتيح. كلها الثلاثة بقيمة افتراضية True؛ اقلبها إلى False لقفل الأكشاك أو ألواح المعاينة أو التضمينات للقراءة فقط دون subclassing.- طبقة عرض غير متزامن —
AsyncRenderingوLoadingTextوLoadingColorترسم مؤشر «Loading...» صغير فوق الصفحة المعروضة بحيث تتشارك التطبيقات التي تستخدم العامل الخاص بها للعروض الطويلة في توفر مرئي متسق. القيم الافتراضية تحافظ على السلوك الموجود.TPdfيُسلسل الآن استدعاءات العرض وتفريغ الصفحات لكل instance؛ التطبيقات لا تزال تمتلك إرسال العامل ويجب أن تتجنب تغيير المستند أثناء جريان عرض ما.- معالجة آمنة لنقرات الروابط —
LinkOptionsهي مجموعة منشورة تتحكم في السلوك التلقائي لأنواع إجراءات روابط PDF الأربعة:loAutoGoto(قفزة صفحة)،loAutoOpenURI(ShellExecute)،loAutoLaunch(ShellExecute)، وloAutoEmbeddedGoto(محجوز). الافتراضيات تُمكّنloAutoGotoوloAutoOpenURIفقط؛ يبقىloAutoLaunchوloAutoEmbeddedGotoمعطلين بحيث لا تستطيع نقرة شاردة تشغيل برنامج اعتباطي.OnAnnotationLinkClickوOnWebLinkClickيُطلقان قبل أي إجراء تلقائي ويسمحان للتطبيق بوضع علامة Handled على الحدث أو إعادة توجيهه.- تفاعل النموذج — تحرير تفاعلي للنموذج داخل العارض، إضافة إلى مساعدات التحديد / التراجع / الإعادة في v1.23.0
- تنسيق مرئي —
PageShadowSizeوPageShadowColorوPageBorderColorترسم ظلًا اختياريًا تحت مستطيل الصفحة وحدًا بسماكة بكسل واحد حوله؛SmoothScrollيحرك الآن أوامر شريط التمرير للسطر/الصفحة في أجزاء مدفوعة بالمؤقت بينما يظل تتبع الإبهام فوريًا- التنقل بالصور المصغرة —
TPdfThumbnailView(وحدةFPdfThumbnail) يعرض صورة مصغرة لصفحة واحدة لكل صف في لوحة جانبية قابلة للتمرير مع تمييز عند المرور والاختيار بالإضافة إلى تنقل النقر-للذهاب. مصمم للوقوف بجانب TPdfView. الخصائص:CurrentPageIndex،ThumbnailWidth،ThumbnailHeight،TextColor،HoverColor،SelectionColor،BorderColor؛ الحدث:OnPageClick.
الضغط
- ضغط تلقائي — عندما تكون خاصية
Compressedبقيمة True (افتراضي)، يُضمَن أن جميع streams PDF مضغوطة بـ FlateDecode عند الحفظ- المعالجة اللاحقة — يفحص محرك الضغط بيانات PDF المحفوظة ويضغط أي streams غير مضغوطة باستخدام أقصى ضغط من zlib
- إعادة بناء المرجع المتقاطع — يعيد بناء جدول xref تلقائيًا عندما يغير ضغط stream تعويضات البايت
- بدون أعباء — إذا كانت جميع streams مضغوطة بالفعل، تمر البيانات دون تعديل
الأمان
- دعم كلمة المرور — فتح مستندات PDF المحمية بكلمة مرور
- الصلاحيات — قراءة صلاحيات المستند والمستخدم؛ يجمع عرض
SecurityAuditالصلاحيات والمرفقات وJavaScript المستند وروابط URI / Launch والتوقيعات وXFA وتوفر V8 في سطح خطر للقراءة فقط مع إجراءات حفظ تقرير TXT / JSON ونسخ TXT- إزالة الأمان — حفظ المستندات مع إزالة الأمان (عند التفويض)
الطباعة
- أوضاع الطباعة — الاختيار بين أوضاع طباعة EMF، نص فقط، PostScript Level 2 / 3، PostScript pass-through، EMF image-mask، وType 42 عبر الدالة العامة
SetPdfPrintMode- تفضيلات العارض — كشف نية مؤلف المستند عبر
PrintCopiesوPrintPageRanges(نطاقات صفحات بدءًا من واحد) وPrintScalingوPrintPaperHandling؛SetPdfPrintPaperHandlingDevModeيُعيّن تلميح Duplex إلى WindowsDEVMODE.dmDuplex- طباعة N-up — تعرض عروض
PrintPreferencesلـ Delphi و C++Builder و Lazarus تركيب أوراق N-up (1 / 2 / 4 / 9 صفحات لكل ورقة) مع تصفية الصفحات الفردية/الزوجية، عرض بتدرج الرمادي، حدود خلية اختيارية بسماكة بكسل، تفضيلات طباعة مؤلف PDF، وتعيين نية Duplex عبرSetPdfPrintPaperHandlingDevMode
الأمثلة المُرفقة
تحتوي أشجار
Demo\DelphiوDemo\CBuilderوDemo\Lazarusعلى مشاريع نموذجية قابلة للتشغيل تختبر سطح API الحي عبر جميع عائلات IDE الثلاث. أبرز الأمثلة:
- PDFViewer / MultiPageViewer / SplitView — استخدام TPdfView من البداية إلى النهاية: التحميل، التنقل، التكبير، التدوير، صفحتان منتشرتان، تخطيطات مع غلاف، ومقارنة جنب-إلى-جنب لملفات PDF في Delphi / C++Builder / Lazarus مع أوامر متزامنة؛ عروض العارض هي أيضًا اختبارات سرعة عملية لملفات PDF متعددة الجيجابايت، حيث يمكن لمستندات بحجم 2.x جيجابايت الوصول إلى عرض أول قابل للاستخدام تقريبًا فورًا بينما يظل عرض الصفحات سريع الاستجابة
- ViewerInteractionLab — عروض تفاعلية مركّزة على TPdfView في Delphi و C++Builder و Lazarus لأوضاع العرض، أوضاع الملاءمة، ألوان الصفحات، التدوير، تمييز البحث، تحديد النصوص، معاينة النص المحدد، إجراءات الحافظة، وملاحظات إحداثيات DeviceToPage
- SearchAndSelect — عروض سير عمل مركّزة في Delphi و Lazarus و C++Builder لسرد نتائج البحث في كل الصفحات، التنقل السابق / التالي بين التطابقات، القفز إلى النتيجة بالنقر المزدوج،
HighlightSearchText، البحث مع مراعاة الحالة / الكلمة الكاملة،AllowUserTextSelection،SelectedText،SelectAll،CopySelectionToClipboard،ClearSelection، وأوضاع العرض المنتشرة- PreflightReport — عروض سير عمل في Delphi و Lazarus و C++Builder بالإضافة إلى رفيق وحدة تحكم Delphi حول
FPdfPreflightReportالقابل لإعادة الاستخدام، يجمع نتائج التحقق من PDF/A و PDF/UA و PDF/E و PDF/X و PDF/R و PDF/VT في صفوف الحالة، الأولوية، فئة المشكلة، عدد فئات المشكلات، ملخص الإجراء التالي، توصيات المشكلات، معاينة نصية / Markdown / JSON / CSV، تقارير TXT / HTML / Markdown / JSON / CSV، توليد تقارير قابلة للبرمجة، معالجة قوائم وأدلة دفعية مع توجيه دليل التقارير، ملخصات إجمالية TXT / JSON / HTML، بيانات صفوف CSV، تضمين مرفقات تقارير اختياري، ورموز خروج بوابة CI- ContentExtractionLab — سير عمل موحد لجرد المحتوى في Delphi و Lazarus و C++Builder لبيانات المستند الوصفية، نص الصفحة، كائنات الصفحة، الصور، المرفقات، الروابط، التعليقات التوضيحية، العلامات المرجعية، ومقاييس الخطوط / الأحرف مع تصدير TXT / JSON، اختيار كل / لا شيء للفئات، حفظ PDF المصدر، وإجراءات نسخ التقرير
- WatermarkStamp — سير عمل Form XObject قابل لإعادة الاستخدام في Delphi و Lazarus و C++Builder للعلامات المائية الموسطة، الأختام الزاوية، وتسميات أرقام الصفحات عبر هدف PDF متعدد الصفحات
- CreatePDF — بناء PDF متعدد الصفحات من الصفر مع النصوص والصور والمسارات والجداول وتركيب العلامة المائية؛ يتضمن خيار «النص الأوروبي» لكتابة نصوص بلكنات تشيكية / فرنسية / ألمانية / إسبانية / برتغالية / بولندية / تركية للتحقق من اختيار الخطوط ومعالجة Unicode
- ExtractText / ExtractImages / ContentExtractionLab — حفظ النصوص المستخرجة (بما فيها المخرجات المفصولة لكل صفحة) أو الصور المضمنة على القرص؛ أو توليد تقرير جرد محتوى متعدد الفئات في مرور واحد
- FormFill — قراءة بيانات حقول AcroForm الوصفية، كتابة القيم، إعادة توليد مظاهر /AP، وحفظ النتيجة القابلة للتحرير أو المُسطّحة
- FontProperties — فحص بيانات الحرف / الخط المُفهرسة عبر كل من TPdf و TPdfView في Delphi و C++Builder و Lazarus
- MergePDF / SplitPDF — دمج عدة ملفات PDF مصدر (مع تحديد نطاق الصفحات لكل ملف، ومسار مخرجات اختياري، وسجل تشغيل، وزر إلغاء، وملخص اكتمال الدمج) أو تقسيم ملف PDF إلى ملفات مخرجات لكل صفحة
- PDFtoJpg / BatchExport — تحويل PDF إلى JPG لمرة واحدة أو دفعيًا متعدد الملفات في Delphi و C++Builder و Lazarus مع تقدم إجمالي لكل ملف، تقدم حالي لكل صفحة، إدخالات DPI / الجودة / كلمة المرور، ودفعة قابلة للإلغاء تعاونيًا مدعومة بـ
IPdfCancellationToken- StandardsLab — عروض سير عمل في Delphi و C++Builder و Lazarus للتحقق من PDF/A و PDF/UA و PDF/E و PDF/X و PDF/R و PDF/VT، تقارير المشكلات، ومخرجات الحفظ الموجهة للمعايير
- PrintPDF / PrintPreferences — طباعة PDF القياسية في Delphi و C++Builder و Lazarus مع المعاينة، نطاقات الصفحات، النسخ، الترتيب، التقدم، والإلغاء (PrintPDF)، بالإضافة إلى تركيب أوراق N-up في Delphi و C++Builder و Lazarus مع تصفية الصفحات الفردية / الزوجية وتفضيلات طباعة مؤلف PDF (PrintPreferences)
- SecurityAudit — عروض سطح خطر للقراءة فقط في Delphi و C++Builder و Lazarus للصلاحيات، المرفقات، إجراءات JavaScript، روابط URI / Launch، روابط الويب، التوقيعات، حالة XFA، توفر مساعدات V8 / XFA، وتقارير تدقيق TXT / JSON
- Attachment — إنشاء PDFs، إضافة / سرد / استخراج / حذف / حفظ الملفات المضمنة مع عرض النوع الفرعي MIME
- ImageToPDF — تحويل دفعي للصور إلى PDF واحد في Delphi و C++Builder و Lazarus، صورة واحدة لكل صفحة، مع المعاينة والتقدم لكل صورة
تغطي مجموعات الاختبار الانحدارية في Delphi و C++Builder و Lazarus حالات 147 (Pas) / 123 (C++) تتشارك في نفس ملفات PDF التجريبية بحيث يظل السلوك متوازنًا على مستوى البايت عبر جميع عائلات IDE الثلاث.
دعم المنصات
- Delphi — Delphi XE5 (RAD Studio XE5) حتى Delphi 13.1 Florence (RAD Studio 13.1)
- C++Builder — C++Builder XE5 (RAD Studio XE5) حتى C++Builder 13.1 Florence
- Lazarus — دعم Free Pascal / Lazarus
- Win32 / Win64 — منصات Windows بنواة 32-bit و 64-bit