ملاحظات إصدار PDFiumVCL
سجل إصدارات ميزات PDFiumVCL الظاهرة للمستخدم، والإصلاحات، وتحسينات العارض، وإنشاء المستندات، وإخراج PDF/A، والعرض، وتحديثات الوثائق.
Version 1.39.52
تغيير (Changed)
- تم تحسين
Demo\Lazarus\CreatePDFبحيث ينشئ مثال البداية الآن ملف PDF من صفحتين يحتوي على vector paths وtable content وembedded image وtext annotation وrotated text وdocument-building walkthrough أوضح. - تمت إضافة صفحات
README.htmlمصقولة لكل مجلد demo في Delphi وC++Builder وLazarus، واستبدال README النصي المتبقي بدليل قابل للقراءة في المتصفح. - تم تحديث
TPdf.AboutInfoوبيانات Lazarus package metadata وinstaller version metadata إلى 1.39.52.
Version 1.39.51
- تم تحسين ملخصات الدُفعات في
Demo\Delphi\PreflightReportCliبإجماليات standard status لنتائج Pass وAction required وReview عبر selected standards. - تتضمن per-file rows الآن action-required count وreview count في ملخصات TXT / HTML / JSON / CSV، مما يسهل فحص CI artifacts بدون فتح كل generated report.
- تم تحديث
TPdf.AboutInfoوبيانات Lazarus package metadata وinstaller version metadata إلى 1.39.51.
Version 1.39.50
- تم تحسين وضع الدُفعات حسب المجلد في
Demo\Delphi\PreflightReportCliبحيث يقومbatchdir=folderبجمع PDF paths المكتشفة وفرزها ثم إنشاء التقارير بترتيب ثابت. - أصبحت عمليات recursive directory scans تنتج report order وsummary rows قابلة للتكرار، بينما يستمر
batch=list.txtprocessing الصريح في الحفاظ على list file order. - تم تحديث
TPdf.AboutInfoوبيانات Lazarus package metadata وinstaller version metadata إلى 1.39.50.
Version 1.39.49
- تم تحسين ملخصات الدُفعات في
Demo\Delphi\PreflightReportCliلتسجيل run settings: نوع المصدر، مسار المصدر، حالة recursive، مجلد الإخراج، report format، selected standards، ووضعfailon=. - تتضمن ملخصات JSON الآن كائن
run، وتعرض ملخصات TXT و HTML قسم run settings، وتكرر CSV rows أعمدة audit نفسها لاستخدامها في الجداول و CI pipelines. - تم تحديث
TPdf.AboutInfoوبيانات Lazarus package metadata وinstaller version metadata إلى 1.39.49.
Version 1.39.48
- تم تحسين batch output naming في
Demo\Delphi\PreflightReportCliبحيث لا تقوم duplicate input file names التي تشترك فيoutdir=واحد بالكتابة فوق generated reports لبعضها. - تضيف Batch runs الآن اللاحقات
-2و-3وما بعدها عندما يكون generated report path قد تم تعيينه بالفعل في نفس التشغيل، وتسجل summaries مسار collision-safe report path النهائي. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.48.
Version 1.39.47
- تم تحسين batch summaries في
Demo\Delphi\PreflightReportCliبحيث تتضمن مخرجات TXT و JSON الآن aggregate totals لـ total files و processed files و failed files و issues وfailon=matches. - تبقى CSV summaries كـ row table صافية من أجل consumers الحاليين، بينما تستمر HTML summaries في عرض نفس aggregate metrics داخل dashboard header.
- تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.47.
Version 1.39.46
- تم تحسين
Demo\Delphi\PreflightReportCliبإضافةsummary=batch.html/.htmبحيث يمكن لـ batch runs إخراج browser-readable dashboard إلى جانب TXT / CSV / JSON manifests. - تعرض HTML summaries مقاييس total و processed و failed و issue و
failon=match، ثم تسرد كل input مع report links و status و counts و error text. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.46.
Version 1.39.45
- تم تحسين
Demo\Delphi\PreflightReportCliبإضافةbatchdir=folderوrecursiveبحيث يمكن لـ scripts فحص PDF folders مباشرة من دون كتابة list file أولاً. - يعيد Directory batch mode استخدام سلوك
outdir=وsummary=وstandards=وfailon=من list-based batch mode؛ ويفحص non-recursive الـ folder المحددة فقط، بينما يتضمنrecursiveالـ subfolders. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.45.
Version 1.39.44
- تم تحسين
Demo\Delphi\PreflightReportCliبإضافةsummary=batch.csv|json|txtحتى تتمكن batch runs من إخراج machine-readable manifest بجانب per-file reports. - تتضمن Batch summaries كل input path و report path و status و standard count و passed count و issue count وحالة تطابق
failon=و error text لاستخدامها في CI jobs و scripts خارجية. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.44.
Version 1.39.43
- تم تحسين
Demo\Delphi\PreflightReportCliبإضافةbatch=list.txtوoutdir=reportsحتى تتمكن scripts من إنشاء preflight reports لقائمة من PDF files في تشغيل واحد. - يتجاوز Batch mode الأسطر الفارغة وأسطر التعليقات
#، ويشتق كل report name بصيغة.preflight.<ext>من PDF الإدخال، ويتابع بعد per-file errors، ثم يعرض ملخص processed و failed files قبل الرجوع. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.43.
Version 1.39.42
- تم تحسين
Demo\Delphi\PreflightReportCliبإضافةfailon=none|issues|action|reviewبحيث تستطيع CI jobs تحويل preflight results الناتجة إلى exit codes حتمية. - تعيد CLI الآن exit code 2 عند تطابق
failon=rule المحددة بعد إنشاء report file و optional attached-report PDF، بينما تستمر runtime errors في إعادة exit code 1. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.42.
Version 1.39.41
- تم تحسين
Demo\Delphi\PreflightReportCliبإضافةattach=output.pdfبحيث يمكن تضمين preflight report الناتج كـ document-level attachment في PDF copy جديدة. - تحتفظ CLI بملف TXT / HTML / Markdown / JSON / CSV report file الناتج على القرص وترفض إرفاقه مرة أخرى إلى input PDF path الأصلي، مما يقلل خطر الاستبدال غير المقصود.
- تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.41.
Version 1.39.40
- تمت إضافة
Demo\Delphi\PreflightReportCli، وهو Delphi console companion لإنشاءFPdfPreflightReportبطريقة scriptable دون فتح viewer. - تدعم CLI إنشاء sample بدون وسيطات، إضافة إلى input / output arguments و optional password وتنسيقات الإخراج
text/html/md/json/csv، وstandards=filtering لـ PDF/A و PDF/UA و PDF/E و PDF/X و PDF/R و PDF/VT. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.40.
Version 1.39.39
- تم تحسين
FPdfPreflightReportبإضافةTPdfPreflightReport.ToMarkdownوSaveMarkdownToFileبحيث يمكن تصدير preflight reports كملف Markdown مناسب لـ issue tracker. - تم تحديث أمثلة
PreflightReportفي Delphi و C++Builder و Lazarus بإضافة Markdown preview switching وإجراءات Save MD إلى جانب workflow TXT / HTML / JSON / CSV الحالي. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.39.
Version 1.39.38
- تم تحسين أمثلة
SecurityAuditفي Delphi و C++Builder و Lazarus بإضافة JSON audit report export إلى جانب workflow TXT save / copy الحالي. - يتضمن JSON report الحقول
formatوgeneratedAtوsummaryوfindingCountوصفوفfindingsمنظمة تحتوي على حقول severity و area و detail. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.38.
Version 1.39.37
- تم تحسين
FPdfPreflightReportبإضافةTPdfPreflightReport.ToCsvوSaveCsvToFileبحيث يمكن تصدير preflight reports كـ spreadsheet-friendly CSV. - تم تحديث samples الخاصة بـ Delphi و C++Builder و Lazarus
PreflightReportبإضافة CSV preview switching و Save CSV actions بجانب workflow الحالي TXT / HTML / JSON. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.37.
Version 1.39.36
- تم تحسين
FPdfPreflightReportبإضافةTPdfPreflightReport.IssueCategoryCountsوالأنواع القابلة لإعادة الاستخدامTPdfPreflightIssueCategoryCountوTPdfPreflightIssueCategoryCountsلتجميع marker-level issues حسب category. - تم تحديث
TPdfPreflightReport.ToTextوToHtmlوToJsonبحيث يتضمن إخراج PreflightReport الناتج issue-category count summaries إلى جانب per-standard rows و detailed issue recommendations. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata لتعرض 1.39.36.
Version 1.39.35
- تمت إعادة تسمية sample الموسع
PrintDialogإلىPrintPreferencesعبر Delphi و C++Builder و Lazarus بحيث يطابق demo name الآن workflow الخاص بـ PDF author print preferences و N-up printing و odd / even filtering و grayscale و cell border و duplex mapping. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata لتعرض 1.39.35.
Version 1.39.34
- تم تحسين
Demo\Delphi\PrintPDFبتحميل PDF عبر السحب والإفلات، وتم توثيق workflow الحالي فيDemo\CBuilder\PrintPDFإلى جانب أمثلة PrintPDF في Delphi وLazarus. - تم تحديث
TPdf.AboutInfoوLazarus package metadata وinstaller version metadata للإبلاغ عن 1.39.34.
Version 1.39.33
- تمت إضافة
Demo\CBuilder\SplitView، وبذلك اكتملت SplitView sample matrix عبر Delphi و C++Builder و Lazarus. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.33.
Version 1.39.32
- تمت إضافة
Demo\Lazarus\SplitView، وبذلك أصبح side-by-side PDF comparison متاحًا في Lazarus مع two- or three-pane layouts و active-view navigation و synchronized commands و zoom presets و rotation. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.32.
Version 1.39.31
- تمت إضافة
Demo\Lazarus\PrintPDF، وبذلك أصبح standard PDF print workflow متاحًا في Lazarus مع preview navigation و page ranges و copies و collate mode و progress و cancellation. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.31.
Version 1.39.30
- تمت إضافة
Demo\Lazarus\FontPropertiesلإكمال مصفوفة أمثلة FontProperties عبر Delphi وC++Builder وLazarus. - تم تحديث
TPdf.AboutInfoوLazarus package metadata وinstaller version metadata للإبلاغ عن 1.39.30.
Version 1.39.29
- تمت إضافة
Demo\CBuilder\FontPropertiesلتوفير فحص بيانات الأحرف والخطوط المفهرسة في C++Builder إلى جانب مثال Delphi. - تم تحديث
TPdf.AboutInfoوLazarus package metadata وinstaller version metadata للإبلاغ عن 1.39.29.
Version 1.39.28
- تمت إضافة
Demo\Delphi\ExtractTextPagesلإكمال مصفوفة أمثلة استخراج النص صفحة بصفحة عبر Delphi وC++Builder وLazarus. - تم تحديث
TPdf.AboutInfoوLazarus package metadata وinstaller version metadata للإبلاغ عن 1.39.28.
Version 1.39.27
- تمت إضافة
Demo\Lazarus\PrintDialog، وبذلك اكتمل PrintDialog sample matrix عبر Delphi و C++Builder و Lazarus. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.27.
Version 1.39.26
- تمت إضافة
Demo\CBuilder\PrintDialog، وبذلك أصبح N-up printing و PDF author print preferences workflow متاحين في C++Builder إلى جانب Delphi sample. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.26.
Version 1.39.25
- تمت إضافة
Demo\CBuilder\ViewerInteractionLab، وبذلك اكتمل ViewerInteractionLab sample matrix عبر Delphi و C++Builder و Lazarus. - تم تحديث library build workflow و Win64 C++Builder package outputs بحيث يتم ربط
TPdfViewviewer interaction methods بشكل صحيح في Win64 demos. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.25.
Version 1.39.24
- تمت إضافة
Demo\Lazarus\ViewerInteractionLab، وبذلك أصبح focused viewer interaction workflow متاحًا في Lazarus إلى جانب Delphi sample. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.24.
Version 1.39.23
- تمت إضافة
Demo\Lazarus\SearchAndSelect، وبذلك اكتملت SearchAndSelect sample matrix عبر Delphi و C++Builder و Lazarus. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.23.
Version 1.39.22
- تمت إضافة
Demo\CBuilder\ContentExtractionLabوDemo\Lazarus\ContentExtractionLab، وبذلك أصبح multi-category content extraction workflow متاحًا في جميع demo IDE المدعومة. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.22.
Version 1.39.21
- تم تحسين
Demo\Delphi\PreflightReportوDemo\Lazarus\PreflightReportوDemo\CBuilder\PreflightReportبإضافة preview format selector حتى يتمكن المستخدمون من فحص text أو JSON output قبل حفظ التقارير. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.21.
Version 1.39.20
- تمت إضافة JSON export إلى
FPdfPreflightReportعبرTPdfPreflightReport.ToJsonوSaveJsonToFileلإنتاج summary قابلة للقراءة آليًا، و per-standard status / priority، و next action، و issue detail. - تم تحديث
Demo\Delphi\PreflightReportوDemo\Lazarus\PreflightReportوDemo\CBuilder\PreflightReportبإجراءات Save JSON إلى جانب TXT / HTML export. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.20.
Version 1.39.19
- تم تحسين
FPdfPreflightReportبإضافةTPdfPreflightStatusوissue categories وper-standard priority وnext-action guidance في TXT / HTML reports. - تم تحديث
Demo\Delphi\PreflightReportوDemo\Lazarus\PreflightReportوDemo\CBuilder\PreflightReportلعرض status وpriority وissue count وnext action في summary grid. - تم تحديث
TPdf.AboutInfoوLazarus package metadata وinstaller version metadata للإبلاغ عن 1.39.19.
Version 1.39.18
- تمت إضافة
Demo\Lazarus\SecurityAudit، وبذلك اكتملت مصفوفة أمثلة Delphi و C++Builder و Lazarus من أجل workflow تدقيق PDF risk-surface للقراءة فقط. - يسرد مثال Lazarus كلا من permissions و attachments و JavaScript actions و URI / Launch link annotations و web links و signatures و XFA state و V8 / XFA helper availability و unsupported-feature callbacks، ثم يحفظ أو ينسخ finding list كتقرير TXT report.
- تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.18.
Version 1.39.17
- تمت إضافة
Demo\CBuilder\SecurityAudit، وبذلك أصبح workflow تدقيق PDF risk-surface للقراءة فقط متاحا في C++Builder إلى جانب مثال Delphi الحالي. - يسرد مثال C++Builder كلا من permissions و attachments و JavaScript actions و URI / Launch link annotations و web links و signatures و XFA state و V8 / XFA helper availability و unsupported-feature callbacks، ثم يحفظ أو ينسخ finding list كتقرير TXT report.
- تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.17.
Version 1.39.16
- تمت إضافة
Demo\CBuilder\SearchAndSelect، وبذلك أصبح workflow viewer مستقل لـ SearchAndSelect متاحا في C++Builder إلى جانب مثال Delphi الحالي. - ينشئ مثال C++Builder أو يفتح PDFs، ويعرض matches لكل الصفحات مع page / character-index previews، ويدعم Previous / Next و double-click navigation، ويميز matches في الصفحة الحالية عبر
HighlightSearchText. - كما يعرض
AllowUserTextSelectionوSelectedTextوSelectAllوCopySelectionToClipboardوClearSelectionوOnSelectionChangeوخيارات spreadDisplayMode؛ وتشير بيانات الإصدار الآن إلى 1.39.16.
Version 1.39.15
- تمت إضافة
Demo\CBuilder\WatermarkStampلإكمال demo matrix الخاصة بـ Delphi و Lazarus و C++Builder من أجل Form XObject watermark و stamp workflows القابلة لإعادة الاستخدام. - ينشئ مثال C++Builder ملفات PDF للـ target و stamp، ويعيد استخدام stamp page عبر
CreateXObjectFromPage، ويطبق transforms باستخدامTPdfMatrix، ثم يحفظ centered watermarks و corner stamps و page number labels. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.15.
Version 1.39.14
- تمت إضافة
Demo\Lazarus\WatermarkStampلجلب workflow القابل لإعادة الاستخدام لـ Form XObject watermark و stamp إلى Lazarus. - ينشئ مثال Lazarus ملفات PDF للـ target و stamp، ويعيد استخدام stamp page عبر
CreateXObjectFromPage، ويطبق transforms باستخدامTPdfMatrix، ثم يحفظ centered watermarks و corner stamps و page number labels. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.14.
Version 1.39.13
- تمت إضافة
Demo\CBuilder\PreflightReportلإكمال demo matrix الخاصة بـ Delphi و Lazarus و C++Builder من أجل workflow القابل لإعادة الاستخدامFPdfPreflightReport. - يستخدم مثال C++Builder ملف
FPdfPreflightReport.hppلإنشاء standard summaries و TXT report previews و TXT / HTML report files وسلوك Open Last Report. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.13.
Version 1.39.12
- تمت إضافة
Demo\Lazarus\PreflightReportلجلب preflight report workflow الخاص بـ PDF/A و PDF/UA و PDF/E و PDF/X و PDF/R و PDF/VT إلى Lazarus. - يمكن لمثال Lazarus فتح PDF أو إنشاؤه، واختيار target standards، ومعاينة summary rows و TXT report output، وحفظ TXT / HTML reports، وفتح آخر report محفوظ.
- تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.12.
Version 1.39.11
- تم تحسين
Demo\Delphi\SearchAndSelectبقائمة نتائج بحث عبر كل الصفحات تسجل page number و character index و preview text. - تمت إضافة Previous / Next match navigation و double-click result jumping مع الحفاظ على سلوك
HighlightSearchTextفي الصفحة الحالية. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.11.
Version 1.39.10
- تم تحسين
Demo\Delphi\SecurityAuditبإجراءات Save Report و Copy Report التي تصدّر summary الحالي و finding rows كتقرير TXT audit report. - يقوم demo الآن بمسح report export state عند reset للـ audit panel حتى تبقى reports المنسوخة أو المحفوظة متوافقة مع findings الظاهرة.
- تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.10.
Version 1.39.9
- تم تحسين
Demo\Delphi\ContentExtractionLabبإضافة source-PDF save و report copy-to-clipboard وإجراءات all / none category selection. - يقوم demo الآن بإبطال report الحالي عند تغيّر category selection حتى تعكس TXT / JSON exports نطاق extraction scope الظاهر.
- تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.9.
Version 1.39.8
- تمت إضافة
Demo\Delphi\ContentExtractionLab، وهو workflow sample موحد لـ content extraction يغطي document metadata و page text و page objects و images و attachments و links و annotations و bookmarks و font / character metrics. - يمكن للمثال فتح PDF موجود أو إنشاء synthetic PDF يحتوي على text و image و attachment و annotation، ثم إنشاء summary rows وتقارير TXT / JSON مفصلة.
- تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.8.
Version 1.39.7
- تمت إضافة
Lib\FPdfPreflightReport.pasكـ report helper قابل لإعادة الاستخدام يجمعValidatePdfAوValidatePdfUaوValidatePdfEوValidatePdfXوValidatePdfRوValidatePdfVTفي كائنTPdfPreflightReportواحد. - تمت إضافة
Demo\Delphi\PreflightReportكـ workflow sample يفتح أو ينشئ PDF، ويختار target standards، ويعرض summary rows وissue recommendations، ويحفظ تقارير TXT أو HTML. - توضح التقارير الناتجة صراحة حدود marker-level validation المدمجة حتى تتمكن التطبيقات من استخدامها مع content-level preflight tools متخصصة عند الحاجة.
- تم تحديث
TPdf.AboutInfoوLazarus package metadata وpackage project lists وinstaller version metadata لتعرض 1.39.7.
Version 1.39.6
- تمت إضافة
Demo\Delphi\SearchAndSelect، وهو مثال viewer workflow مركز على search highlighting و text selection و selected-text preview و copy و clear و spread display modes. - يوضح المثال
HighlightSearchTextوخيارات البحث match-case / whole-word وAllowUserTextSelectionوSelectedTextوSelectAllوCopySelectionToClipboardوClearSelectionدون إضافة API جديدة للمكتبة. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.6.
Version 1.39.5
- تم توسيع
Demo\Delphi\ViewerInteractionLabليصبح مثال viewer UX بأسلوب SearchAndSelect معHighlightSearchTextوخيارات match-case / whole-word ومعاينة النص المحدد وعناصر selection / clipboard controls الموجودة. - تم توسيع
Demo\Delphi\PrintDialogلفحص PDF author print preferences:PrintCopiesوPrintPageRangesوPrintScalingوPrintPaperHandlingو duplex mapping المرئي عبرSetPdfPrintPaperHandlingDevMode. - تمت إضافة
Demo\Delphi\SecurityAudit، وهو مثال risk-surface للقراءة فقط يسرد permissions و attachments و document JavaScript و URI / Launch links و web links و signatures و XFA state و V8 / XFA helper availability. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.5.
Version 1.39.4
- تمت إضافة
Demo\CBuilder\ImageToPDFوDemo\Lazarus\ImageToPDF، مما يكمل مصفوفة أمثلة ImageToPDF عبر Delphi و C++Builder و Lazarus. - توضح الأمثلة الجديدة اختيار عدة صور، ومعاينة الصورة المحددة، وصفحة PDF واحدة لكل صورة، وحجم صفحة A4 portrait / landscape، وتحجيم الصورة في الوسط، والتقدم لكل صورة، وفتح PDF الناتج بعد الحفظ.
- تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.4.
Version 1.39.3
- تمت إضافة
Demo\CBuilder\BatchExport، مما يجلب workflow تصدير PDF إلى JPG متعدد الملفات إلى C++Builder بجانب أمثلة Delphi و Lazarus الموجودة. - يوضح المثال
LoadCustomDocumentوIPdfCancellationTokenSourceوإدخالTFileStreamبتدفق، والتقدم لكل ملف ولكل صفحة، ومعالجة الإلغاء، ومدخلات DPI / quality / password، وفتح مجلد الإخراج بعد الاكتمال. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.3.
Version 1.39.2
- تمت إضافة
Demo\Delphi\WatermarkStamp، وهو مثال قابل للتشغيل لسير عمل Form XObject ينشئ PDF هدفا و stamp PDF قابلا لإعادة الاستخدام، ثم يطبق علامات مائية في الوسط، وأختاما في الزاوية العلوية اليمنى، وتسميات أرقام الصفحات على كل صفحة. - يوضح المثال
CreateXObjectFromPageوInsertFormObjectFromXObjectوTPdfMatrixوFPDFPageObj_SetMatrixمن دون إضافة API جديدة للمكتبة. - تم تحديث
Docs\en-us\Examples.htmlلاستخدام نمطTPdfMatrix.Handleالحالي عند تمرير المصفوفات إلىFPDFPageObj_SetMatrix. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.2.
Version 1.39.1
- تم إصلاح توافق batch-build في demo C++Builder داخل
PDFViewerوMultiPageViewerباستبدالnullptrبـNULLفي project mode الحالي. - تمت إضافة
Demo\Delphi\ViewerInteractionLabكعينة مركزة لـTPdfViewتعرض display modes و fit modes و page colors و rotation و user text selection و clipboard actions وتغذية راجعة لإحداثياتDeviceToPage. - تمت إضافة
Demo\CBuilder\StandardsLab/Demo\Lazarus\StandardsLabكي يتمكن مستخدمو Lazarus من تشغيل سير عمل التحقق و marker-output لمعايير PDF/A و PDF/UA و PDF/E و PDF/X و PDF/R و PDF/VT. - تم إدراج standards units في
Lib\37.0\PDFiumVcl.dprojandLib\FPC\PDFiumLaz.lpk، وتم إصلاح بناء demo DelphiSplitViewبإزالة import مكرر لـWinapi.ShellAPI. - تم إصلاح عوائق batch-build في demo Delphi داخل
BatchExportوPDFViewerوMultiPageViewerوSplitViewدون تغيير runtime behavior. - تم تحديث
TPdf.AboutInfoو Lazarus package metadata و installer version metadata للإبلاغ عن 1.39.1.
Version 1.39.0
- تمت إضافة
Demo\Delphi\StandardsLab، وهو مثال قابل للتشغيل لسير عمل المعايير يقوم بتحميل PDF أو إنشائه، ثم تشغيلValidatePdfAوValidatePdfUaوValidatePdfEوValidatePdfXوValidatePdfRوValidatePdfVT، ويعرض conformance المكتشفة وحالة النجاح وعدد issue في شبكة واحدة. - تستدعي أزرار الحفظ في StandardsLab الدوال
SaveAsPdfAوSaveAsPdfUaوSaveAsPdfEوSaveAsPdfXوSaveAsPdfRوSaveAsPdfVT، مما يجعل مخرجات marker لمعايير PDF مرئية دون كتابة harness مخصص. - تم تحديث
TPdf.AboutInfoوبيانات حزمة Lazarus وبيانات إصدار المثبت لتعرض 1.39.0.
Version 1.38.0
- تستخدم تراكبات البحث وتحديد النص في
TPdfViewالآن alpha blending حقيقياً بدلاً من رسم mask منطقي، مع الحفاظ على محتوى الصفحة تحت التمييز. - تمت إضافة
SetPdfPrintPaperHandlingDevModeلتحويلTPrintPaperHandlingإلى قيم WindowsDEVMODE.dmDuplex:DMDUP_SIMPLEXوDMDUP_HORIZONTALوDMDUP_VERTICAL. - يقوم
TPdfView.SmoothScrollالآن بتحريك line/page scrollbar commands عبر timer-driven segments؛ ويبقى thumb tracking فورياً. - تم تحديث
TPdf.AboutInfoوبيانات إصدار المثبت إلى 1.38.0.
Version 1.37.0
- أصبح
TPdfيملك قفل render لكل instance يسلْسلRenderPageوRenderTileوRenderPageProgressiveومسارات reload للصفحة وunload للمستند. أصبح render من worker عبر مكون مشترك عملياً، مع بقاء تنسيق تعديلات المستند ودورة حياته على التطبيق. - تم إصلاح wrapper الخاص بـ zero-copy bitmap لرفض DIB
TBitmapبنمط bottom-up والرجوع إلى buffer مملوك لـ PDFium مع copy نهائي، مما يزيل أخطاء stride corruption / access violation في اختبارات VCL render. - تم تضييق سلوك التحديد في
TPdfView: الخاصيةAllowUserTextSelectionتمنع إدخال المستخدم فقط، وتستمر APIs التحديد من الكود في الرسم، ويتبعSelectAllالـ spread المرئي الفعلي بحيث لا تحدد صفحة الغلاف الصفحة 2. تم توسيع اختبارات Delphi وLazarus وC++Builder. - تم تحديث
TPdf.AboutInfoوبيانات إصدار المثبت إلى 1.37.0.
Version 1.36.0
- تم تفعيل تحديد النص للمستخدم النهائي في
TPdfView: الخاصيةAllowUserTextSelectionالمحجوزة في v1.17.0 تقود الآن drag-select وdouble-click word وtriple-click line وCtrl+AوCtrl+CوShift+arrows. - تمت إضافة
SelectionColorوOnSelectionChangeوAPIs التحديد من الكود:HasSelectionوSelectionCharCountوSelectedTextوClearSelectionوSelectAllوCopySelectionToClipboard. - تدعم أوضاع spread التحديد بين الصفحات المرئية، ويتم ربط قائمة Copy الافتراضية تلقائياً عندما لا يحدد host خاصية
PopupMenu، ويتم مسح التحديد عند تغيير document أو page أو Active أو DisplayMode. - تم توسيع اختبارات Delphi وLazarus وC++Builder لتغطية خصائص التحديد ومسار الماوس واختصارات لوحة المفاتيح والقائمة الافتراضية وclipboard round-trip وspread selection.
Version 1.35.0
- تمت إضافة دعم حقن علامات PDF/VT (ISO 16612-2:2010): يرتقي TPdf.SaveAsPdfVT بالمستند الحالي إلى ملف متوافق مع PDF/VT-1 أو PDF/VT-2 (مجموعة فرعية من PDF لطباعة البيانات المتغيرة والمعاملات). يُبنى PDF/VT على PDF/X-4 (§6.2.1)، لذلك يكتب الحاقن مجموعة كاملة من علامات PDF/X-4 (XMP pdfxid وInfo GTS_PDFXVersion + Trapped وOutputIntent مع ICC) إلى جانب الخصائص الخاصة بـ PDF/VT.
- تتضمن الخصائص الخاصة بـ PDF/VT XMP
pdfvtid:GTS_PDFVTVersionوpdfvtid:GTS_PDFVTModDate(متزامن معxmp:ModifyDateوفقاً لـ §6.3 NOTE 1) ووصف pdfaExtension:schemas لكلا مساحتي الأسماء NPES pdfxid وpdfvtid. - تمت إضافة TPdf.SaveAsPdfVTToStream لإخراج PDF/VT في الذاكرة واختصار
TPdf.SaveAsPdfVT(FileName)الذي ينتج PDF/VT-1 مع OutputIntent sRGB مضمن افتراضياً. - تمت إضافة TPdf.ValidatePdfVT: يفحص علامات PDF/VT (بما في ذلك معادلة
pdfvtid:GTS_PDFVTModDate/xmp:ModifyDateووجود/DPartRoot) ويُرجع TPdfVTValidationResult. - تمت إضافة خاصية TPdf.PdfVTConformance: تُرجع المستوى دون استدعاء ValidatePdfVT صراحة.
- أنواع جديدة مُصدَّرة في الوحدة الجديدة FPdfPdfvt: TPdfVTConformance وTPdfVTTrappedState وTPdfVTValidationResult وTPdfVTValidationIssue وTPdfVTSaveOptions.
- التسلسل الهرمي للجزء من المستند (DPartRoot / DPart، §6.5) هو هيكل على مستوى التطبيق ولا يُولَّد تلقائياً. تظل متطلبات مستوى المحتوى PDF/X-4 (تضمين الخطوط، الشفافية، إدارة ألوان ICC، حظر OPI / JavaScript / Reference XObject) من مسؤولية المؤلف.
- تم تحديث سلسلة TPdf.AboutInfo للإبلاغ عن الإصدار الحالي للمنتج.
Version 1.34.0
- تمت إضافة دعم حقن علامات PDF/R-1 (ISO 23504-1:2020): يرتقي TPdf.SaveAsPdfR بالمستند الحالي إلى ملف متوافق مع PDF/R-1 (مجموعة فرعية من PDF لنقل الصور النقطية، تُستخدم للمستندات الممسوحة ضوئياً). يغطي الحقن متطلبات مستوى تنسيق الملف — التعليق الفريد
%PDF-raster-1.0بين trailer dictionary وstartxref (§5)، وcatalog مختصر إلى القائمة البيضاء §6.3 (Version/ViewerPreferences/PageLayout/PageMode/AcroForm/Metadata فقط)، وDocument Information Dictionary مختصر إلى §6.4.3 (Creator/Producer/CreationDate/ModDate فقط)، وتدفق XMP مع الأربع إدخالات في §6.4.4 Table 1، ومصفوفة/IDفي trailer. - تمت إضافة TPdf.SaveAsPdfRToStream لإخراج PDF/R في الذاكرة واختصار
TPdf.SaveAsPdfR(FileName). - تمت إضافة TPdf.ValidatePdfR: يفحص العلامات ويُرجع TPdfRValidationResult.
- تمت إضافة خاصية TPdf.PdfRConformance: تُرجع المستوى دون استدعاء ValidatePdfR صراحة.
- أنواع جديدة مُصدَّرة في الوحدة الجديدة FPdfPdfr: TPdfRConformance وTPdfRValidationResult وTPdfRValidationIssue وTPdfRSaveOptions. الافتراضي يزيل Title/Author/Subject/Keywords من Info والإدخالات غير المسموح بها من catalog.
- متطلبات مستوى المحتوى (هيكل Contents لكل صفحة، MediaBox
[0 0 w h]، الفلاتر المقيدة، عدم وجود object streams، تخطيط الشرائط) تبقى من مسؤولية PDF المصدر. PDF/R أكثر صرامة هيكلياً من معايير PDF/x الأخرى؛ اقترن مع مُحقق TWAIN Working Group للتحقق الكامل. - تم تحديث سلسلة TPdf.AboutInfo للإبلاغ عن الإصدار الحالي للمنتج.
Version 1.33.0
- تمت إضافة دعم حقن علامات PDF/X (عائلة ISO 15930): يرتقي TPdf.SaveAsPdfX بالمستند الحالي إلى ملف متوافق مع PDF/X-1a:2001 أو PDF/X-3:2002 أو PDF/X-4 من خلال معالجة لاحقة لـ PDF الأساسي بتحديث تزايدي. يغطي الحقن متطلبات مستوى تنسيق الملف — تدفق XMP يحمل
pdfxid:GTS_PDFXVersionووصف pdfaExtension:schemas، وDocument Information Dictionary المعاد كتابته مع/GTS_PDFXVersionو/GTS_PDFXConformanceو/Trapped، وcatalog محدث مع/OutputIntentsيشير إلى OutputIntent/S /GTS_PDFXمع ICC profile مضمن، ومصفوفة/IDفي trailer. - تمت إضافة TPdf.SaveAsPdfXToStream لإخراج PDF/X في الذاكرة، واختصار
TPdf.SaveAsPdfX(FileName)الذي ينتج PDF/X-4 مع OutputIntent sRGB IEC61966-2.1 مضمن افتراضياً. - تمت إضافة TPdf.ValidatePdfX: يفحص علامات التوافق ويُرجع TPdfXValidationResult.
- تمت إضافة خاصية TPdf.PdfXConformance: تُرجع مستوى التوافق دون استدعاء ValidatePdfX صراحة.
- أنواع جديدة مُصدَّرة في الوحدة الجديدة FPdfPdfx: TPdfXConformance وTPdfXTrappedState وTPdfXValidationResult وTPdfXValidationIssue وTPdfXSaveOptions. الافتراضي يستهدف PDF/X-4 مع sRGB؛ يمكن للمستدعين توفير ICC profile بنظام CMYK (FOGRA39 وGRACoL2006...) عبر
IccProfileData. - متطلبات مستوى المحتوى (تضمين كل الخطوط، بدون JavaScript، بدون annotations مرئية، حظر OPI، قواعد الشفافية لـ PDF/X-1a / PDF/X-3) تبقى من مسؤولية مؤلف المستند. اقترن مع callas pdfaPilot أو Ghent PDF Workgroup Output Suite للتحقق الكامل.
- تم تحديث سلسلة TPdf.AboutInfo للإبلاغ عن الإصدار الحالي للمنتج.
Version 1.32.0
- تمت إضافة دعم حقن علامات PDF/E-1 (ISO 24517-1:2008): يرتقي TPdf.SaveAsPdfE بالمستند الحالي إلى ملف متوافق مع PDF/E-1 من خلال معالجة لاحقة لـ PDF الأساسي بتحديث تزايدي. يغطي الحقن متطلبات مستوى تنسيق الملف — تدفق بيانات وصفية XMP يحمل
pdfe:ISO_PDFEVersion = "PDF/E-1"ووصف pdfaExtension:schemas المطابق، وDocument Information Dictionary المعاد كتابته مع الإدخال الإلزامي/ISO_PDFEVersion (PDF/E-1)من §5، وتكافؤ Info-XMP الموروث من ISO 19005-1 §6.7 عبر §13.1، ومصفوفة/IDفي trailer المطلوبة بموجب §6.2. - تمت إضافة TPdf.SaveAsPdfEToStream لإخراج PDF/E في الذاكرة واختصار
TPdf.SaveAsPdfE(FileName). - تمت إضافة TPdf.ValidatePdfE: يفحص علامات التوافق ويُرجع TPdfEValidationResult.
- تمت إضافة خاصية TPdf.PdfEConformance: تُرجع مستوى التوافق دون استدعاء ValidatePdfE صراحة.
- أنواع جديدة مُصدَّرة في الوحدة الجديدة FPdfPdfe: TPdfEConformance وTPdfEValidationResult وTPdfEValidationIssue وTPdfESaveOptions.
- إعادة كتابة Info dictionary هي الأولى من نوعها في مسار المعالجة اللاحقة PDF/x في PDFiumVCL — تعيد كتابة كائن Info الموجود برقم الكائن نفسه (الحفاظ على مرجع /Info في trailer)، وتُولِّد قاموس Info جديد إذا لم يكن لـ trailer المصدر مدخل /Info.
- متطلبات مستوى المحتوى (تضمين الخطوط، CMaps ToUnicode، XObjects / مفاتيح ExtGState / نماذج XFA المحظورة) تبقى من مسؤولية مؤلف المستند.
- تم تحديث سلسلة TPdf.AboutInfo للإبلاغ عن الإصدار الحالي للمنتج.
Version 1.31.0
- تمت إضافة دعم حقن علامات PDF/UA-1 (ISO 14289-1:2014): يرتقي TPdf.SaveAsPdfUa بالمستند الحالي إلى ملف متوافق مع PDF/UA-1 من خلال معالجة لاحقة لـ PDF الأساسي بتحديث تزايدي. يغطي الحقن متطلبات مستوى تنسيق الملف التي يمكن تطبيقها بالمعالجة اللاحقة — تدفق بيانات وصفية XMP يحمل
pdfuaid:part = 1ووصف pdfaExtension:schemas المطابق، وdc:titleإلزامي، وcatalog/MarkInfo << /Marked true /Suspects false >>و/ViewerPreferences << /DisplayDocTitle true >>(يُحقن فقط عند عدم وجوده في المصدر)، وcatalog/Lang(عندما يوفر المتصل وسم BCP 47)، ومصفوفة/IDفي trailer. - تمت إضافة TPdf.SaveAsPdfUaToStream لإخراج PDF/UA في الذاكرة، واختصار خيارات افتراضية
TPdf.SaveAsPdfUa(FileName)للحالة الشائعة. - تمت إضافة TPdf.ValidatePdfUa: يفحص PDF مفتوحاً عن علامات توافق PDF/UA-1 (وجود StructTreeRoot وLang/ وMarkInfo /Marked true مع Suspects = false/ وViewerPreferences /DisplayDocTitle true/ ومعرف XMP pdfuaid:part ووجود dc:title وID/ في trailer وحالة التشفير) ويُرجع نتيجة مهيكلة بمستوى التوافق المكتشف ومجموعة المشكلات الموجودة.
- تمت إضافة خاصية TPdf.PdfUaConformance: تُرجع مستوى توافق المستند المفتوح (puc1 أو pucNone أو pucUnknown) دون استدعاء ValidatePdfUa صراحة.
- أنواع جديدة مُصدَّرة في الوحدة الجديدة FPdfPdfua: TPdfUaConformance وTPdfUaValidationResult وTPdfUaValidationIssue وTPdfUaSaveOptions.
- الحقول الفارغة في TPdfUaSaveOptions (Title وAuthor وSubject وKeywords وCreator وProducer وCreationDate وModDate وDocumentId وInstanceId وLanguage) تُملأ تلقائياً عبر FPDF_GetMetaText وFPDF_GetFileIdentifier وFPDFCatalog_GetLanguage.
- متطلبات مستوى المحتوى (اكتمال وسم StructTreeRoot، ونص Figure Alt، وToUnicode CMaps، وتضمين الخطوط، وغيرها) تبقى من مسؤولية مؤلف المستند — يُلحق SaveAsPdfUa علامات التنسيق فقط. يُبلغ ValidatePdfUa عن غياب StructTreeRoot كـ
pvuaiMissingStructTreeRoot. - تم تحديث سلسلة TPdf.AboutInfo للإبلاغ عن الإصدار الحالي للمنتج.
Version 1.30.0
- أصبح إخراج PDF/A-1b يفي بمتطلبات ISO 19005-1 (مع Cor.1:2007) للتكافؤ بين Document Information Dictionary وXMP: كل إدخال في Info dictionary يكتبه PDFium في PDF الأساسي يُعكس في حزمة XMP، بما في ذلك Title (dc:title) وAuthor (dc:creator) وSubject (dc:description وفقاً لـ Cor.1) وKeywords (pdf:Keywords) وCreator (xmp:CreatorTool) وProducer (pdf:Producer) وCreationDate (xmp:CreateDate) وModDate (xmp:ModifyDate). كما يُصدر xmp:MetadataDate.
- أصبح trailer مستند PDF/A يحتوي دائماً على مصفوفة /ID (متطلب إلزامي في ISO 19005-1 6.1.3). عندما يعالج TPdf.SaveAsPdfA مستنداً مصدره يحتوي بالفعل على file identifier، تُعاد استخدام معرفات permanent وchanging بحجم 16 بايت؛ وإلا يُشتق معرف احتياطي حتمي بحجم 16 بايت من بايتات المصدر.
- يتضمن XMP المحقون الآن وصف extension schema pdfaid المطلوب بموجب ISO 19005-1 6.7.8 (المستبدل بـ Cor.1) — يُعتبر pdfaid extension schema بالنسبة إلى XMP Specification 2004، لذا يجب على جميع الملفات المتوافقة الإعلان عن property names وvalue types وcategories الخاصة به في الحاوية pdfaExtension:schemas.
- اكتسب TPdfASaveOptions خمسة حقول اختيارية جديدة: Producer وCreationDate وModDate (سلاسل تاريخ PDF بصيغة «D:YYYYMMDDHHmmSSOHH'mm'») وDocumentId وInstanceId (سلاسل 16 بايت لمصفوفة /ID في trailer). يملأ TPdf.SaveAsPdfA / SaveAsPdfAToStream الحقول الفارغة تلقائياً عبر FPDF_GetMetaText وFPDF_GetFileIdentifier، لذلك يستمر الكود الموجود في العمل دون تغيير.
- يُبلغ TPdf.ValidatePdfA / TPdf.PdfAConformance الآن عن ثلاث مشكلات إضافية: pvaiMissingTrailerId (لا يوجد /ID في trailer) وpvaiMissingXmpDates (xmp:CreateDate أو xmp:ModifyDate مفقود) وpvaiMissingExtensionSchema (وصف extension schema pdfaid مفقود).
- تُرمَّز الأحرف غير ASCII في Title وAuthor وSubject وKeywords وCreator وProducer الآن كـ UTF-8 في حزمة XMP (يتطلب XMP Specification UTF-8)، مع الحفاظ على البيانات الوصفية متعددة اللغات عبر SaveAsPdfA.
- تم تحديث سلسلة TPdf.AboutInfo للإبلاغ عن الإصدار الحالي للمنتج.
Version 1.29.0
- تم تحديث مكتبات PDFium المُضمَّنة (Win32 وWin64، الإصدار القياسي وإصدار V8) إلى لقطة المنبع بتاريخ 2026-05-22، مما يُدخل إصلاحات المنبع لمسارات الانهيار في FPDFText_SetText / FPDFText_SetCharcodes وعدة تحصينات داخلية من مشروع PDFium.
- تم كشف علم الحفظ الجديد FPDF_SUBSET_NEW_FONTS من PDFium في FPdfPageOps.pas، مما يتيح لمستدعي FPDF_SaveAsCopy طلب التجزئة الفرعية التلقائية لملفات الخطوط المضمَّنة الخاصة بالكائنات النصية المُضافة حديثًا. تم الآن إعادة تعريف الثوابت الحالية FPDF_INCREMENTAL وFPDF_NO_INCREMENTAL وFPDF_REMOVE_SECURITY باستخدام صيغة الإزاحة البتية من المنبع (تم الاحتفاظ بالقيمة العددية القديمة 3 باسم FPDF_REMOVE_SECURITY_DEPRECATED للحفاظ على التوافق الثنائي).
- تمت إضافة التعداد FPDF_FONT_BACKEND_TYPE (FREETYPE / FONTATIONS) والحقل المقابل m_FontLibraryType في FPDF_LIBRARY_CONFIG داخل FPdfView.pas، حتى تتمكن التطبيقات التي تُهيّئ PDFium باستخدام مُحرِّك Skia من اختيار الواجهة الخلفية للخطوط عند بدء التشغيل.
- تم تحديث توقيع TFPDFPage_InsertObject ليطابق المنبع: تُعيد دالة C الآن FPDF_BOOL (TRUE عند النجاح، وFALSE إذا كان page_object يساوي NULL أو فشل نقل الملكية) بدلًا من void. لا تزال نداءات PDFiumVCL القائمة قابلة للترجمة دون تعديل، نظرًا لأن Delphi / FPC يسمحان بتجاهل قيمة الإرجاع للدالة.
- تم تصحيح سلسلة TPdf.AboutInfo لتعرض الإصدار الحالي من المنتج (ظلت قديمة عند v1.27.0 منذ الإصدار 1.28.0 الذي اقتصر على الوثائق).
Version 1.28.0
- تم توسيع وثائق الصفحات داخل مرجع الـ API بالكامل توسيعًا جوهريًا: كل إدخال لخاصية أو طريقة أو حدث أو دالة عامة يحمل الآن وصفًا من ثلاث فقرات (Description)، وقائمة Remarks، ومثال Delphi Example متعدد الأسطر، وكتلة See Also أكثر ثراءً — ويغطي ذلك 200+ صفحة كانت سابقًا شحيحة المحتوى، بما في ذلك جميع عدادات TPdf، وأدوات قراءة البيانات الوصفية، وأدوات الوصول إلى الخطوط والأحرف، والخصائص على مستوى الصفحة، والسجلات المُفهرسة، والطرق على مستوى المستند، وسطح TPdfView الكامل للحالة والعرض والأحداث.
- تم ضبط تخطيط المساعدة بدقة ليطابق الأساس المرئي لـ losLab المستخدم في مرجع HotXLS: تم توحيد أحجام h1/h2، ودمج أنماط شبكة تنقل الـ API في StyleSheet المشترك، وإزالة تجاوزات الـ CSS المضمنة لكل صفحة من Navigation.html.
- تأتي الوثائق الآن مع نص برمجي مساعد (Docs\Build-Expand-Entries.ps1) يعيد توليد إثراء صفحات الإدخالات من جدول بيانات واحد لضمان صيانة قابلة للتكرار.
Version 1.27.0
- تمت إضافة دعم إنشاء PDF/A-1b: تحفظ TPdf.SaveAsPdfA أي مستند مفتوح كملف متوافق مع PDF/A-1b من خلال معالجة لاحقة لملف PDF الأساسي بتحديث تزايدي يحقن تدفق بيانات وصفية XMP، و sRGB ICC OutputIntent، وفهرس مستند محدّث — كل ذلك دون الحاجة إلى واجهات DLL إضافية. يعمل على أي منصة يدعمها PDFiumVCL.
- تمت إضافة TPdf.SaveAsPdfAToStream لإخراج PDF/A في الذاكرة.
- تمت إضافة TPdf.ValidatePdfA: تتحقق من امتثال ملف PDF المفتوح لمعيار PDF/A (علامات XMP pdfaid، وجود OutputIntent مع ملف ICC مضمّن، التشفير) وتعيد نتيجة منظّمة بمستوى الامتثال المكتشف ومجموعة من المشكلات المحددة التي عُثر عليها.
- تمت إضافة خاصية TPdf.PdfAConformance: تعيد مستوى امتثال المستند المفتوح حاليًا (pac1b، pac1a، pac2b، pac3b، pacNone، أو pacUnknown) دون الحاجة إلى استدعاء ValidatePdfA صراحةً.
- تم تصدير أنواع جديدة: TPdfAConformance، TPdfAValidationResult، TPdfAValidationIssue، TPdfASaveOptions (في الوحدة الجديدة FPdfPdfa.pas).
- تدعم SaveAsPdfA ملف ICC مخصص عبر TPdfASaveOptions.IccProfileData؛ وعندما يُترك فارغًا، يُستخدم تلقائيًا ملف sRGB IEC61966-2.1 المدمج (HP/Microsoft، 3144 bytes).
- تم استبدال المرجع HTML المتجانس بنظام مساعدة ويب معاد هيكلته: 302 صفحة إدخال API مستقلة (صفحة لكل خاصية وطريقة وحدث ودالة عامة) تغطي TPdf و TPdfView، تحتوي كل منها على وصف كامل وجدول معاملات ومثال كود Delphi وروابط See Also.
- تمت إضافة Navigation.html: فهرس تنقل API شامل في صفحة واحدة منظّم في ستة أقسام (خصائص/طرق/أحداث TPdf، وخصائص/طرق/أحداث TPdfView، والدوال العامة) مع شبكة مرنة من 5 أعمدة للمسح السريع.
- تمت إعادة بناء TPdf.html و TPdfView.html بوصفها صفحات نظرة عامة مدمجة للمكوّن مع الإبقاء على أقسام مرجع الأنواع (Types، Constants، Global Variables) والارتباط الخارجي بصفحات الإدخال الفردية لجميع الأعضاء.
- تمت إضافة بحث نصي كامل مدعوم بـ Search.js مع مطابقة تزايدية من جانب العميل عبر جميع الصفحات المفهرسة البالغ عددها 312.
- تم تحديث جميع أشرطة التنقل على مستوى الموقع للإشارة إلى Navigation.html.
Version 1.26.0
- تمت إضافة Demo/Lazarus/BatchExport، وهو نسخة LCL من عرض Delphi BatchExport في الإصدار v1.14.0. يحمل نفس مجموعة الميزات: تصدير دفعي متعدد الملفات من PDF -> JPG مع شريط تقدّم إجمالي لكل ملف، وتقدّم حالي لكل صفحة، ومدخلات DPI / الجودة / كلمة المرور، ودفعة قابلة للإلغاء التعاوني مدعومة بـ IPdfCancellationToken. يُفتح مجلد الإخراج في مدير ملفات المنصة عند انتهاء الاستخراج بنجاح.
Version 1.25.0
- تمت إضافة إمكانية إعادة استخدام صفحة Form XObject إلى TPdf، مما يُمكّن من سيناريوهات العلامات المائية وتراكب القوالب و“ختم صفحة واحدة على عدة صفحات”: تصنع CreateXObjectFromPage مقبضًا قابلًا لإعادة الاستخدام من أي صفحة في مستند آخر؛ بينما تُدرج InsertFormObjectFromXObject نسخة واحدة من الصفحة المغلّفة في الصفحة الحالية. تُرجع الكائن المُدرج FPDF_PAGEOBJECT حتى يتمكن المُستدعي من تحديد موضعه / تكبيره / تدويره باستخدام FPDFPageObj_SetMatrix وأدوات TPdfMatrix المساعدة المُقدّمة في v1.9.0.
- يغلّف الصف الجديد TPdfXObject بلغة Pascal مقبض FPDF_XOBJECT الخاص بـ PDFium ويغلقه تلقائيًا في الدالة الهادمة، مما يُلغي الحاجة إلى استدعاء FPDF_CloseXObject يدويًا.
- تم توسيع مجموعات اختبارات الانحدار في Delphi و Lazarus إلى 147 حالة لكل منهما، ومجموعة C++Builder إلى 123 حالة، لتغطية عقود إنشاء المقبض وإدراج كائن الصفحة.
Version 1.24.0
- تمت إضافة TPdf.RenderPageProgressive — وهو متغيّر قابل للإلغاء من RenderPage يقود حلقة العرض التزايدي في PDFium ويستطلع IPdfCancellationToken المُقدّم في v1.7.0 بين التكرارات، بحيث يمكن لعمليات العرض الطويلة بدقة DPI عالية أن تُجهَض في منتصف الصفحة بدلًا من حجب المُستدعي حتى الاكتمال.
- يُعيد قيمة TPdfProgressiveStatus: prsDone أو prsCancelled أو prsFailed. مرّر AToken = nil للعرض حتى الاكتمال دون أي إيقاف مؤقت (وبالتالي لا احتمال لـ prsCancelled).
- يستخدم نفس مسار zero-copy السريع المُقدّم في v1.21.0 — يعرض PDFium مباشرةً في DIB الخاص بـ TBitmap الوجهة. ويُطبَّق نفس fallback القديم عندما يتعذّر تغليف DIB.
- تم توسيع مجموعات اختبارات الانحدار في Delphi و Lazarus إلى 145 حالة لكل منهما، ومجموعة C++Builder إلى 121 حالة، لتغطية nil-token (الاكتمال)، والـ token المُلغى مسبقًا (prsCancelled)، والتكافؤ في وحدات البكسل مع RenderPage المتزامن على token حي.
Version 1.23.0
- تمت إضافة ست طرق جديدة في TPdfView تكشف عن تحديد النص والتراجع/الإعادة في عناصر النماذج في PDFium للتطبيقات: تُعيد GetSelectedFormText النص المحدد حاليًا داخل عنصر النموذج المُركّز عليه؛ تختار SelectAllFormText كل الأحرف؛ بينما تقود FormUndo / FormRedo / FormCanUndo / FormCanRedo سجل تعديلات العنصر المُركّز عليه. كانت واجهات PDFium الأساسية مربوطة بالفعل ولكن دون نقطة دخول عالية المستوى. تتعامل كل الطرق الست بأمان عندما يكون العارض غير نشط أو لا توجد عناصر AcroForm مُركّزة في المستند.
- تم توسيع مجموعات اختبارات الانحدار في Delphi و Lazarus إلى 142 حالة لكل منهما، ومجموعة C++Builder إلى 119 حالة، لتغطية عقد "عدم وجود نموذج لا تركيز" لكل طريقة جديدة.
Version 1.22.0
- تمت إضافة مغلّفات تركيب الصفحات إلى TPdf: تأخذ ImportPagesByIndex مصفوفة فهارس صفرية لنسخ صفحات محددة من مستند مصدر؛ تُعيد ImportNPagesToOne نسخة TPdf جديدة تمامًا تتكون صفحاتها من تركيبات N-up من هذا المستند؛ بينما تُعيد MovePages ترتيب الصفحات في مكانها. كانت واجهات PDFium الأساسية مربوطة بالفعل ولكن دون نقطة دخول ودودة لـ Pascal.
- تقبل ImportPagesByIndex مصفوفة فارغة لاستيراد كل صفحات المصدر (يعادل تمرير nil على مستوى C ABI).
- تم توسيع مجموعات اختبارات الانحدار في Delphi و Lazarus إلى 136 حالة لكل منهما، ومجموعة C++Builder إلى 115 حالة، لتغطية الاستيراد الجزئي، واستيراد المستند الكامل، وإعادة ترتيب الصفحات، وتركيب N-up المركّب.
Version 1.21.0
- تحسّن أداء العرض عبر تحويل TPdf.RenderPage / TPdf.RenderTile (والمساعدات المقابلة في TPdfView) إلى مسار إخراج zero-copy. يكتب PDFium الآن مباشرةً في مخزّن DIB الخاص بـ TBitmap الوجهة بدلًا من الكتابة في مخزّن داخلي ثم نسخه صفًا بصف، مما يوفر نسخة ذاكرة بحجم width x height x 4 bytes لكل عملية عرض. التحسّن أكثر وضوحًا عند DPI عالية (لوحات المُصغرات، تصدير بجودة طباعة، تصدير دفعي).
- أُبقي على المسار القديم لكل سطر مسح كاحتياط للحالة النادرة التي لا يمكن فيها تغليف DIB الوجهة (أبعاد متطرفة، خطوة غير معتادة، OOM). السلوك متطابق على مستوى البايت بين المسارين، فقط أبطأ في مسار الاحتياط.
- تم توسيع مجموعات اختبارات الانحدار في Delphi و Lazarus إلى 132 حالة لكل منهما، ومجموعة C++Builder إلى 112 حالة، لتغطية ترقية pf32bit للنقطية المُستدعية، ودورة كاملة للأبعاد، واختبار سلامة الخطوة لنقطية كبيرة.
Version 1.20.0
- تمت إضافة تظليل نتائج البحث إلى TPdfView: تمسح HighlightSearchText(Text, MatchCase, MatchWholeWord) صفحة العرض الحالية وتُعيد عدد التطابقات الموجودة، وترسم قناع HighlightColor فوق كل تطابق عند كل إعادة رسم. تُزيل ClearHighlight التظليلات؛ بينما يؤدي تبديل العارض إلى صفحة مختلفة إلى مسحها تلقائيًا لأن التطابقات خاصة بكل صفحة.
- قيمة HighlightColor الافتراضية هي clYellow ومُعلَنة (published) حتى تتمكن التطبيقات من تنسيق التظليل ليطابق لوحة ألوان واجهتها.
- تم توسيع مجموعات اختبارات الانحدار في Delphi و Lazarus إلى 129 حالة لكل منهما، ومجموعة C++Builder إلى 109 حالات، لتغطية اللون الافتراضي، ودورة اللون الكاملة، و“مطابقات كلمات حقيقية من مادة الاختبار” مقابل نص sample.pdf، وعقد “الكلمة المفقودة تُعيد صفر تطابقات”.
Version 1.19.0
- تمت إضافة خاصية FitMode إلى TPdfView بأربع قيم: pfmNone (تكبير يدوي)، و pfmActualSize (100%)، و pfmFitPage (تتسع الصفحة بأكملها في إطار العرض)، و pfmFitWidth (يتطابق عرض الصفحة مع عرض إطار العرض). يُعاد تطبيق وضع الملاءمة النشط تلقائيًا عند Resize وعند تغيير الصفحة الحالية، لذا تظل المستندات الطويلة ذات الأحجام المختلفة للصفحات مؤطّرة بشكل مثالي.
- يؤدي تعيين Zoom مباشرةً إلى إلغاء وضع الملاءمة النشط (تعود FitMode إلى pfmNone)، تطابقًا مع تقليد عارض PDF القياسي حيث يؤدي كتابة قيمة تكبير إلى الخروج من Fit Page / Fit Width.
- القيمة الافتراضية هي pfmNone بحيث تحتفظ التطبيقات الحالية بسلوكها الصريح للتكبير.
- تم توسيع مجموعات اختبارات الانحدار في Delphi و Lazarus إلى 124 حالة لكل منهما، ومجموعة C++Builder إلى 106 حالات، لتغطية القيمة الافتراضية، ودورة الوضع الكاملة، و fit-page بإنتاج تكبير حقيقي على مستند مُحمَّل، وأن التكبير اليدوي يلغي وضع الملاءمة.
Version 1.18.0
- تمت إضافة خاصية PageColor إلى TPdfView، لفصل خلفية صفحة PDF المعروضة عن خاصية Color للعنصر التحكم المحيط. القيمة الافتراضية هي clWhite، لذا تُعرض صفحات PDF الآن بلون ورقي أبيض بغض النظر عن سمة التطبيق المضيف. تستطيع العارضات في الوضع الداكن الآن إبقاء منطقة التمرير داكنة مع ترك صفحة PDF الفعلية بيضاء (أو أي لون يختاره التطبيق).
- تغيير في السلوك: التطبيقات التي كانت تضبط TPdfView.Color لإعادة تلوين صفحة PDF يجب أن تضبط PageColor بدلًا منها. تتحسن التجربة الافتراضية للحالة الشائعة (صفحات بيضاء على خلفيات تحكم ذات سمة) دون أي تغيير في الكود.
- تم توسيع مجموعات اختبارات الانحدار في Delphi و Lazarus إلى 120 حالة لكل منهما، ومجموعة C++Builder إلى 103 حالات، لتغطية القيمة الافتراضية ودورة اللون الكاملة.
Version 1.17.0
- تمت إضافة مفاتيح تعطيل إدخال المستخدم إلى TPdfView بحيث يمكن للتطبيقات التي تضمّن العارض في kiosks أو لوحات المعاينة أو السياقات للقراءة فقط تعطيل إيماءات التنقل دون subclassing: تتحكم AllowUserPageChange في اختصارات لوحة المفاتيح الجديدة PgUp / PgDn / Ctrl+Home / Ctrl+End؛ وتتحكم ChangePageOnMouseScrolling في القفز بين الصفحات بعجلة الفأرة الجديدة لأعلى/أسفل؛ بينما تكون AllowUserTextSelection محجوزة لمسار تحديد النص بسحب الفأرة المستقبلي. القيمة الافتراضية لجميعها هي True بحيث تترقّى التطبيقات الحالية دون أي تغيير في السلوك.
- يتخطى التنقل بين الصفحات بعجلة الفأرة Ctrl+wheel بحيث يمكن للتطبيقات الاحتفاظ بـ Ctrl+wheel للتكبير.
- تم توسيع مجموعات اختبارات الانحدار في Delphi و Lazarus إلى 118 حالة لكل منهما، ومجموعة C++Builder إلى 101 حالة، لتغطية القيم الافتراضية ودورة المفتاح الكاملة.
Version 1.16.2
- تم توسيع تغطية اختبارات انحدار TPdfView لنقرات روابط التعليقات التوضيحية عندما تختلف صفحة العارض عن صفحة TPdf المرتبطة، باستخدام مسار نقرة فأرة حقيقي بلا واجهة عبر Delphi و Lazarus و C++Builder.
- تشغّل مجموعتا Delphi و Lazarus الآن 114 حالة لكل منهما، وتشغّل C++Builder الآن 99 حالة.
Version 1.16.1
- تم إصلاح معالجة نقر الروابط في TPdfView بحيث تستخدم الإجراءات التلقائية للتعليقات التوضيحية والروابط الإلكترونية الصفحةَ المعروضة حاليًا في العارض، حتى عندما يكون مكوّن TPdf المرتبط متوقفًا على صفحة مختلفة.
- تم تحصين TPdfThumbnailView ضد مراجع Pdf المعلّقة عند تدمير مكوّن TPdf المرتبط.
- تمت إضافة تغطية انحدار لعمر مرجع المُصغّرات؛ تشغّل مجموعتا Delphi و Lazarus الآن 113 حالة لكل منهما، وتشغّل C++Builder الآن 98 حالة.
- تم مزامنة README ووثائق الاختبار ومحتوى البحث/الفهرس في HTML Help ومخرجات حِزَم C++ المُولَّدة مع تحديثات الدمج من v1.7.0 حتى v1.16.0.
Version 1.16.0
- تمت إضافة عرض Delphi PrintDialog جديد (Demo/Delphi/PrintDialog) يركّز على الطباعة بترتيب N-up (1 / 2 / 4 / 9 صفحات لكل ورقة) مع تصفية الصفحات الفردية / الزوجية، والعرض بتدرّج رمادي، وحدود اختيارية بعرض 1 بكسل للخلية. وهو مرافق صغير متعمَّد لعرض PrintPDF القائم، الذي يغطي بالفعل المعاينة والملفات الأخيرة والتكبير والقياس.
Version 1.15.0
- تم إضافة مكوّن جديد TPdfThumbnailView (وحدة FPdfThumbnail) يعرض مُصغّر صفحة واحد لكل صف في لوحة جانبية قابلة للتمرير مع تظليل التمرير فوق العنصر والتحديد ونقر للتنقل. مُصمَّم ليجلس بجانب TPdfView بحيث يتمكن المستخدمون النهائيون من تصفّح مستند طويل حسب الصفحة.
- المكوّن مسجّل في علامة تبويب اللوحة losLab جنبًا إلى جنب مع TPdf و TPdfView؛ الخصائص الرئيسية: Pdf، CurrentPageIndex، ThumbnailWidth، ThumbnailHeight، TextColor، HoverColor، SelectionColor، BorderColor، والحدث OnPageClick.
- تم توسيع مجموعات اختبارات الانحدار في Delphi و Lazarus إلى 112 حالة لكل منهما، ومجموعة C++Builder إلى 97 حالة، لتغطية القيم الافتراضية، ودورة حجم المُصغّر الكاملة، وقصّ القيم القصوى، ودورة اللون الكاملة، وإسناد معالج الأحداث.
Version 1.14.0
- تمت إضافة عرض Delphi BatchExport جديد (Demo/Delphi/BatchExport) يوضح كيفية تحويل العديد من ملفات PDF إلى JPG في تمرير واحد باستخدام TPdf.LoadCustomDocument للتحميل المتدفق، و IPdfCancellationToken للإلغاء التعاوني، وأشرطة تقدّم إجمالية لكل ملف + لكل صفحة. يستخدم العرض مثيل TPdf واحد لكل ملف (PDFium نفسه ليس آمنًا للخيوط) ويفتح مجلد الإخراج في Explorer عند انتهاء الاستخراج بنجاح.
Version 1.13.0
- تمت إضافة طبقة واجهة عرض غير متزامن إلى TPdfView من خلال ثلاث خصائص جديدة: AsyncRendering و LoadingText و LoadingColor. عندما تكون AsyncRendering مساوية لـ True يرسم مسار رسم الصفحة الواحدة مؤشرًا صغيرًا “Loading...” فوق الصفحة المعروضة بحيث تشترك التطبيقات التي تستخدم عاملًا خاصًا بها لعمليات العرض الطويلة في تأثير بصري متّسق.
- تحافظ القيم الافتراضية على السلوك الحالي: AsyncRendering هي False، لذا التطبيقات التي لا تختار التفعيل لا ترى أي تغيير بصري.
- توضّح الوثائق أن PDFium نفسه ليس آمنًا للخيوط — ولفعليًا تفريغ العرض إلى عامل، يجب على المُستدعي الإبقاء على TPdf واحد لكل عامل؛ ويُظهر عرض التصدير الدفعي القادم هذا النمط.
- تم توسيع مجموعات اختبارات الانحدار في Delphi و Lazarus إلى 106 حالات لكل منهما، ومجموعة C++Builder إلى 93 حالة، لتغطية القيم الافتراضية ودورة الخصائص الثلاث الكاملة.
Version 1.12.0
- تمت إضافة معالجة روابط مدفوعة بالنقر إلى TPdfView. تتحكم خاصية LinkOptions الجديدة في السلوك التلقائي لأربعة أنواع من إجراءات روابط PDF: goto (قفزة صفحة)، و URI (ShellExecute)، و launch (ShellExecute)، و embedded GotoR (محجوز). تُمكّن القيم الافتراضية loAutoGoto و loAutoOpenURI؛ بينما تبقى loAutoLaunch و loAutoEmbeddedGoto معطّلة بحيث لا يمكن لنقرة عابرة تشغيل برنامج اعتباطي.
- تمت إضافة حدثَي OnAnnotationLinkClick و OnWebLinkClick اللذين يُطلقان قبل أي إجراء تلقائي ويسمحان للتطبيقات بفحص الرابط ووضع علامة Handled عليه أو إعادة توجيهه (مثلًا، إلى مطالبة أمان).
- يعمل كشف نقر الروابط فقط عندما تكون الإيماءة نقرة بدلًا من سحب، باستخدام مرساة MouseDown جديدة بحيث تستمر إيماءات التحريك في التدفق عبر مسار التمرير الحالي دون تغيير.
- تم توسيع مجموعات اختبارات الانحدار في Delphi و Lazarus إلى 102 حالة لكل منهما، ومجموعة C++Builder إلى 91 حالة، لتغطية LinkOptions الافتراضية، ودورة الضبط الكاملة، وإسناد معالج الأحداث.
Version 1.11.0
- تمت إضافة لمسات بصرية إلى TPdfView: ترسم خصائص PageShadowSize و PageShadowColor و PageBorderColor ظلًا منسدلًا اختياريًا أسفل مستطيل الصفحة وحدًا بعرض بكسل واحد حولها. تحافظ القيم الافتراضية على المظهر المسطح السابق (PageShadowSize = 0؛ يُرسم الحد بقيمة clBlack الافتراضية لكنه يندمج في الخلفية البيضاء الافتراضية حتى يغيّر المُستدعي الألوان).
- تمت إضافة خاصية SmoothScroll كعلامة اشتراك اختياري لرسم متحرّك تزايدي للتمرير في المستقبل؛ تعمل دورة الخاصية الكاملة اليوم وتم توصيلها بحيث تستطيع التطبيقات الاحتفاظ بالتفضيل، بينما لا يزال جانب العرض يستخدم سلوك التمرير الفوري الحالي.
- تم توسيع مجموعات اختبارات الانحدار في Delphi و Lazarus إلى 98 حالة لكل منهما، ومجموعة C++Builder إلى 89 حالة، لتغطية القيم الافتراضية، ودورة الخصائص الكاملة، وقصّ حجم الظل السالب.
Version 1.10.0
- تمت إضافة إدراج صور مباشر من خلال أحمال زائدة (overloads) جديدة لـ TPdf.AddImage و TPdfView.AddImage تأخذ إما مسار ملف أو TBitmap، إضافةً إلى AddPicture المستندة إلى TPicture الموجودة سلفًا. تتعرّف AddImage(FileName) على أي تنسيق مُسجَّل لدى وحدات الرسوميات VCL أو LCL (BMP، PNG عبر وحدة PngImage، JPG، إلخ) وتمرّ عبر نفس خط الأنابيب الذي تستخدمه AddPicture بحيث يكون السلوك متطابقًا.
- تتخطى AddImage(TBitmap) الوسيط TPicture، مما يُبسّط على المُستدعين الذين يحملون بالفعل TBitmap من أعمال العرض أو التوليد الدفعي.
- تم توسيع مجموعات اختبارات الانحدار في Delphi و Lazarus إلى 92 حالة لكل منهما، ومجموعة C++Builder إلى 84 حالة، لتغطية إدراج النقطية، وحدود كائن الصفحة، ورفض النقطية nil، وتحميل ملف BMP.
Version 1.9.0
- تمت إضافة دعم مصفوفة تحويل عالية المستوى من خلال صف TPdfMatrix الجديد في وحدة FPdfMatrix. يغلّف TPdfMatrix FS_MATRIX الخاص بـ PDFium بواجهة OO لـ Translate و Scale و Rotate و HorizontalFlip و VerticalFlip و CentralFlip و Skew و Multiply، مناسبة لتركيب التحويلات قبل تمريرها إلى FPDFPageObj_SetMatrix وواجهات PDFium المشابهة.
- تأخذ TPdfMatrix.Multiply لقطة صحيحة لعناصر المصفوفة الستة قبل حساب قيم الصف الجديدة، مما يصلح مشكلة كامنة كانت فيها تطبيقات Pascal البديلة تكتب فوق العناصر السابقة خلال نفس الاستدعاء وتنتج نتائج خاطئة لأي تركيب يتجاوز الإزاحة البحتة.
- تم توسيع مجموعات اختبارات الانحدار في Delphi و Lazarus إلى 88 حالة لكل منهما، ومجموعة C++Builder إلى 81 حالة، لتغطية الهوية، وإعادة التعيين، والإزاحة / التكبير / الانعكاس، وترتيب التركيب بعد الضرب، وحالة انحدار Multiply.
Version 1.8.0
- تمت إضافة تحميل تدفق عند الطلب من خلال الطريقة الجديدة TPdf.LoadCustomDocument(AStream, AOwnsStream) وصف TPdfStreamAdapter المساعد، مدعومة بـ FPDF_LoadCustomDocument الخاصة بـ PDFium. يقرأ PDFium الآن كتلًا من TStream المُقدَّم فقط عند الحاجة، لذا لم تعد ملفات PDF الكبيرة جدًا أو البعيدة تتطلب نسخة في الذاكرة مسبقًا.
- تمت إضافة ملكية تدفق اختيارية: يؤدي تمرير AOwnsStream = True إلى تسليم عمر TStream إلى TPdf، الذي يُحرّره عند تشغيل UnloadDocument.
- تم توسيع مجموعات اختبارات الانحدار في Delphi و Lazarus إلى 79 حالة لكل منهما، ومجموعة C++Builder إلى 75 حالة، لتغطية التحميل المتدفق عبر TFileStream، وتنظيف التدفق المُمتلَك، وعقد بقاء التدفق المُمتلَك خارجيًا بعد unload.
Version 1.7.0
- تمت إضافة أوّليات إلغاء غير متزامن تعاوني في وحدة FPdfAsync الجديدة، تكشف عن IPdfCancellationToken / IPdfCancellationTokenSource ومُفرد PdfNoCancellationToken قابل لإعادة الاستخدام بحيث يمكن لتدفقات عمل العرض والتصدير طويلة المدى دعم دلالات إلغاء نظيفة من واجهة المستخدم.
- تمت إضافة مُساعد خفيف TPdfFuture<T> يقوم بتشغيل عامل على خيط في الخلفية ويُرسل مغلف TPdfFutureResult<T> إلى الخيط الرئيسي، بحيث يميّز بين حالات النجاح والإلغاء والفشل.
- تم توسيع مجموعات اختبارات الانحدار في Delphi و Lazarus إلى 76 حالة لكل منهما، ومجموعة C++Builder إلى 73 حالة، بتغطية مشتركة لحالة الإلغاء، والإلغاء مكرر النتيجة، وتوزيع الاستدعاءات، والتسجيل بعد الإلغاء.
Version 1.6.10
- تمت إضافة وصول عالي المستوى TPdf.PrintPageRanges إلى تفضيل نطاق صفحات الطباعة لعارض PDF، يُعيد نطاقات صفحات تعتمد على رقم 1 لكود التطبيق.
- تمت إضافة TPdf.SetFormFieldFlags / SetFormFieldFlagsAt ومساعدات TPdfView المطابقة بحيث تتمكن التطبيقات من تحديث أعلام حقول AcroForm عبر الواجهة العامة، بما في ذلك تغطية أعلام كلمة المرور والاختيار المتعدد.
- تم تحصين تغطية ABI لربط PDFium من أجل FPDF_DWORD بحجم Windows، واستدعاءات FPDF_FILEACCESS، وحقول فتحة embedder الخاصة بـ V8.
Version 1.6.9
- تمت إضافة روابط عرض Skia منخفضة المستوى لواجهات FPDF_RenderPageSkia و FPDF_FFLDrawSkia المُصدَّرة حديثًا في PDFium DLLs القياسية و V8 المرفقة.
- تم توسيع فحوصات تغطية الربط العامة بحيث يتحقق تحميل DLL القياسي و V8 الآن من نقاط دخول العرض Skia جنبًا إلى جنب مع فحوصات إمكانيات V8/XFA الموجودة.
Version 1.6.8
- تمت إضافة TPdf.SetTextPositions و TPdfSingleArray لتعيين مواضع كل حرف على كائنات نصية موجودة من خلال واجهة FPDFText_SetPositions المُصدَّرة حديثًا.
- تمت ترقية FPDFText_SetPositions إلى ربط مطلوب لـ PDFium DLLs المرفقة الحالية، مع التأكيد على أن نقاط دخول عرض Skia تبقى غير متاحة لأن DLLs لا تصدّرها بعد.
- تم توسيع مجموعات اختبارات الانحدار في Delphi و C++Builder و Lazarus إلى 65 حالة لكل منها مع تغطية مواضع النص.
Version 1.6.7
- تمت إضافة وصول عالي المستوى TPdf إلى إجراءات JavaScript في name-tree المستند، وإعادة أسماء الإجراءات والنصوص البرمجية من خلال JavaScriptAction و JavaScriptActions.
- تمت إضافة TPdf.FileIdentifier لقراءة معرّفات trailer الدائمة والمتغيّرة كـ TBytes ثنائية دون بايت الإنهاء الخاص بـ PDFium.
- تمت إضافة TPdf.PageBox و GetPageBox و SetPageBox لـ MediaBox و CropBox و BleedBox و TrimBox و ArtBox على الصفحة الحالية.
- تم التأكيد على أن PDFium DLLs المرفقة الحالية تترك فقط نقاط دخول عرض Skia غير متاحة في وقت التشغيل لأن تلك الصادرات غير موجودة.
- تم توسيع مجموعات اختبارات الانحدار في Delphi و C++Builder و Lazarus إلى 64 حالة لكل منها مع تغطية JavaScript المستند، ومعرّف trailer، وصندوق الصفحة.
Version 1.6.6
- تمت إضافة دعم وقت تشغيل لـ PDFium DLL الممكَّن بـ V8 المرفق. يحدد ضبط EnableV8Engine قبل التحميل الآن pdfium.v8.dll من شجرة DLLs\Win32 أو DLLs\Win64 ويكشف عن ربط V8/XFA-only عندما يوفّرها DLL المُحمَّل.
- تمت إضافة V8FeaturesAvailable و XfaBStrHelpersAvailable و GetRecommendedV8Flags وروابط اختيارية منخفضة المستوى لـ FPDF_BStr_* و FPDF_GetRecommendedV8Flags و FPDF_GetArrayBufferAllocatorSharedInstance.
- تم جعل FPDFText_SetPositions اختياريًا بحيث يستمر تحميل PDFiumVCL مع PDFium DLLs التي لا تصدّر مُحدّد مواضع النص التجريبي ذاك.
- تم توسيع مجموعات اختبارات الانحدار في Delphi و C++Builder و Lazarus إلى 61 حالة لكل منها مع تغطية إمكانيات DLL القياسي و V8.
Version 1.6.5
- تمت إضافة فحص شجرة بنية Tagged PDF عبر TPdf.StructureElements و TPdfView.StructureElements، بما في ذلك نوع العنصر، والعنوان، والنص البديل، والنص الفعلي، ونص التوسع، واللغة، ومعرّفات marked-content، وعدد الأطفال، وعدد السمات.
- تمت إضافة اختيار وضع طباعة PDFium في Windows من خلال TPdfPrintMode و SetPdfPrintMode، يغطي أوضاع طباعة EMF، والنص فقط، و PostScript، و pass-through، و image-mask، و Type 42.
- تمت إضافة روابط منخفضة المستوى لبقية صادرات PDFium DLL القياسية العامة التي تغطي إجراءات JavaScript، وأعلام حقول النموذج / لون خط التعليق التوضيحي، وحالة كائن الصفحة النشطة، والإدراج المُفهرس، وقيم float لـ content-mark، وبيانات ICC لصورة، وإزالة كائن النموذج، ومواضع النص.
- تم توسيع مجموعات اختبارات الانحدار في Delphi و C++Builder و Lazarus إلى 59 حالة لكل منها مع تغطية شجرة بنية Tagged PDF، ووضع الطباعة، وربط الصادرات العامة.
Version 1.6.4
- تم تحديث عروض Delphi و C++Builder و Lazarus لفتح ملفات PDF المُولَّدة، والنصوص/الصور المُصدَّرة، ومجلدات الإخراج الدفعي تلقائيًا بعد الإنشاء الناجح.
Version 1.6.3
- تم توسيع مجموعات اختبارات الانحدار المُوائَمة في Delphi و C++Builder و Lazarus إلى 56 حالة لكل منها مع تغطية TPdfView GUI لمساعدات fit-zoom، ودورات إحداثيات الجهاز/الصفحة الكاملة، واختبار إصابة الأحرف، وتحريك الفأرة من خلال عناصر تحكم العارض ذات النوافذ المخفية.
- تستخدم مادة اختبار TPdfView الآن حجم عارض صريحًا وأصنافًا فرعية للاختبار فقط تمارس معالجات الفأرة المحمية مع إبقاء المجموعات بلا واجهة بالكامل.
Version 1.6.2
- تم إصلاح TPdf.AddPage(0, ...) بحيث تصبح الصفحة الأولى المُدرجة هي الصفحة النشطة فورًا. تستمر أمثلة الكود الحالية في العمل، بينما تُبلّغ PageNumber الآن عن صفحة صحيحة معتمدة على رقم 1 بعد الإدراج.
- تم مزامنة إصدار حزمة Lazarus وتم توسيع مجموعات اختبارات الانحدار المُوائَمة في Delphi و C++Builder و Lazarus إلى 52 حالة لكل منها.
Version 1.6.1
- تم إصلاح اشتراط حد أدنى من الإصدار غير صحيح في مُدقّق توافق إصدار PDF في v1.6.0: تمت إعادة تصنيف إجراء SetState من PDF 1.5 إلى PDF 1.2، تطابقًا مع مرجع PDF 1.2 القسم 6.9.9. أهداف SaveAs لـ PDF 1.3 / 1.4 التي تحتوي على إجراءات SetState تُحفظ الآن بشكل صحيح بدلًا من رفضها.
- تمت إضافة فحوصات معجمية مطابقة لـ PDF 1.2 وفقًا لنفس قسم المواصفات: تُحجب الآن إجراءات Sound و Movie و NOP وفضاء ألوان Separation عندما يكون الإصدار الهدف المختار أقدم من PDF 1.2.
- تم توسيع مجموعات اختبارات الانحدار في Delphi و C++Builder و Lazarus إلى 50 حالة لكل منها بإضافة اختبار قبول إيجابي لـ PDF 1.4 SetState يُثبّت الحد المُصحَّح.
Version 1.6.0
- تم تحصين أهداف SaveAs الصريحة لـ PDF 1.0 إلى PDF 1.7 بمُدقّق ميزات إصدار كامل يغطي جدول ميزات PDF 1.1 إلى ISO 32000-1 الزمني بالكامل. يحجب المُدقّق الآن عمليات الحفظ التي تحتوي على إدخالات قاموس، أو أسماء filter، أو أنواع فرعية للتعليقات التوضيحية، أو أنواع إجراءات، أو خطوط، أو فضاءات ألوان، أو معاملات تشفير مُقدَّمة بعد الإصدار الهدف المختار. أمثلة: JBIG2Decode (1.4+)، و MarkInfo / Tagged PDF (1.4+)، و OutputIntents (1.4+)، و ICCBased / DeviceN / BleedBox / TrimBox / ArtBox / StructTreeRoot (1.3+)، وتعليقات Polygon / PolyLine / Caret / Screen / Watermark / Redact التوضيحية، وتشفير AES و AES-256 (CFM AESV2 / AESV3)، وإدخالات فهرس Perms / Legal / Requirements / NeedsRendering، والإجراءات المُحدَّدة بالإصدار مثل JavaScript و Trans و SetState و Rendition و GoToE و GoTo3DView كلها تُرفض عندما لا يستطيع إصدار PDF الهدف تمثيلها.
Version 1.5.13
- تم توسيع مجموعات اختبارات الانحدار في Delphi و C++Builder و Lazarus إلى 49 حالة لكل منها، بإضافة تغطية مباشرة لرفض فضاءات ألوان ICCBased، و MarkInfo لـ Tagged PDF، وتعليقات Polygon التوضيحية، وتشفير AES (V2)، وتعليقات Redact التوضيحية مقابل أهداف PDF 1.2 / 1.3 / 1.4 / 1.5 / 1.6 على التوالي.
Version 1.5.12
- تم إصلاح المعالجة اللاحقة لـ SaveAs من أجل إعادة كتابة الفهرس التزايدي. يتحقق PDFiumVCL الآن من أحدث كائن غير مباشر مكرر، بحيث تُستبدل تجاوزات /Version للفهرس الحالية بشكل صحيح عند الحفظ إلى إصدار PDF هدف أقدم صريح.
- تم توسيع مجموعات اختبارات الانحدار في Delphi و C++Builder و Lazarus إلى 44 حالة لكل منها، بإضافة تغطية مباشرة لاستبدال /Version للفهرس القديم، وتطبيع إصدار فهرس PDF 1.4، ورفض ميزات الشفافية والمجموعات المحمولة عندما لا يستطيع إصدار PDF الهدف المختار تمثيلها.
Version 1.5.11
- تم تحصين مخرجات SaveAs ذات الإصدارات لأهداف PDF 1.3 و 1.4 و 1.5 و 1.6 و 1.7 الصريحة. يُطبّع PDFiumVCL الآن علامات إصدار الفهرس، ويحافظ على OpenAction الافتراضي Fit Height آمنًا للإصدار، ويرفض ميزات PDF الأحدث عندما لا يستطيع الإصدار الهدف المختار تمثيلها.
- تمت إضافة تغطية انحدار في Delphi و C++Builder و Lazarus تحفظ وتُعيد تحميل ملفات PDF 1.3 إلى PDF 1.7 الصريحة، وتتحقق من العنوان النهائي، و OpenAction الافتراضي Fit Height، وإصدار PDF المُبلَّغ عنه.
Version 1.5.10
- تم الانتقال من الخيار B في المواصفات إلى الخيار C بإضافة اختبارات استدلالية لـ TPdfView في جميع مجموعات IDE الثلاث (Tests.PdfView). تبني كل مجموعة TForm والد مخفي (عبر TForm.CreateNew في جانب Pascal و
new TForm(NULL, 0)في جانب C++Builder)، وتُعيد توطين TPdfView، وتضبط Active := True، ثم تتحقق من سطح الدورة الكاملة لـ PageCount و PageNumber الافتراضي و Zoom و Rotation و DisplayMode، وأن View.Text يطابق TPdf.Text الأساسي. تشغّل كل مجموعة IDE الآن 39 حالة.
Version 1.5.9
- تم الانتقال من الخيار A في المواصفات إلى الخيار B بإضافة اختبارات عرض استدلالية في جميع مجموعات IDE الثلاث. تستدعي كل مجموعة Tests.Render الدالة TPdf.RenderPage على sample.pdf وتتحقق من ثلاث إشارات صلبة بدلًا من checksums بايت ببايت: تتطابق النقطية المُعادة تمامًا مع حجم البكسل المطلوب؛ تنتج الأحجام المطلوبة المختلفة (200x100، 64x256) نقطيات متطابقة؛ والصفحة المعروضة تكون 95% خلفية بيضاء على الأقل مع 50 (Lazarus: 20) بكسلًا غير أبيض على الأقل لتمييز النص المُسوّى. تشغّل كل مجموعة IDE الآن 33 حالة.
Version 1.5.8
- تم إغلاق مجموعات خطة اختبار A(2) الأصلية بإضافة سبعة اختبارات انحدار إضافية لكل IDE: TPdf.CreateAnnotation تبني تعليق anHighlight بالإضافة إلى دورة SaveAs/LoadDocument كاملة، ومسار قراءة AcroForm على Demo/Delphi/FormFill/cmp_fill_out_and_merge_forms.pdf (FormType هي ftAcroForm، FormFieldCount > 0، تُسقط FlattenAllPages الحقول إلى صفر)، وتغطية مسار قراءة هادئة لـ Bookmarks و LinkAnnotationCount و WebLinkCount على مستند لا يحتوي على أي من تلك الميزات. تشغّل كل مجموعة IDE الآن 30 حالة.
Version 1.5.7
- تم توسيع مجموعات Delphi (DUnitX) و Lazarus (FPCUnit) و C++Builder (GoogleTest) بسبعة اختبارات انحدار جديدة لكل IDE: PdfVersion و PageRotation و TPdf.FindFirst / FindNext للبحث عن سلسلة جزئية، وتطابق CharacterOrigin / CharacterRectangle مع نقطة أصل AddText، وتسجيل CreateAttachment بالإضافة إلى دورة SaveAs/LoadDocument، ودورة AddText كاملة لنص بعلامات تشكيل تتحقق من أن مسار تضمين TrueType الأوروبي في v1.3.0 يحافظ على نقاط شيفرة Latin-1 supplemental سليمة.
Version 1.5.6
- ملفات PDF المحفوظة تحصل الآن على إجراء فتح افتراضي Fit Height للصفحة الأولى عندما لا يكون هناك OpenAction موجود، بحيث تعرض قارئات PDF المستندات المُولَّدة في البداية بتكبير ارتفاع الصفحة.
- تمت إضافة تغطية انحدار في Delphi و Lazarus و C++Builder لـ OpenAction المُولَّد وضبط Fit Height.
Version 1.5.5
- تمت إضافة اختبارات انحدار عبر مجموعات Delphi (DUnitX) و Lazarus (FPCUnit) و C++Builder (GoogleTest) لسطح API الخاص بفحص الأحرف والخطوط المُفهرس (TPdf.FontBaseName و FontFamilyName و FontWeight و FontItalicAngle و FontData و FontIsEmbedded و CharacterFontWeight و CharacterAngle). تتخطى مجموعة Lazarus عمدًا FontData، التي تُسبب حاليًا access-violates داخل FPDFFont_GetFontData تحت FPC.
Version 1.5.4
- تمت إضافة عرض Attachment لـ C++Builder مَنقول من عينة Delphi، يغطي إنشاء ملفات PDF، وإضافة مرفقات الملفات المضمنة وسردها واستخراجها وحذفها وحفظها مع عرض النوع الفرعي MIME.
Version 1.5.3
- تم كشف حساب صفحة spread الذي يدعم أوضاع الصفحتين في TPdfView كمساعد على مستوى الوحدة ComputeSpreadPages(DisplayMode, PageNumber, PageCount, out LeftPageNo, out RightPageNo). السلوك لم يتغير؛ يجعل المساعد القاعدة المدركة للغلاف قابلة للاختبار بشكل مستقل دون إنشاء مثيل للعارض.
- تمت إضافة خمسة اختبارات انحدار عبر مجموعات Delphi (DUnitX) و Lazarus (FPCUnit) و C++Builder (GoogleTest) تغطي المستندات الفارغة، والإقران القياسي للصفحتين، وصفحة الغلاف الواقفة وحدها في dmTwoPageContinuousWithCover، وأزواج ما بعد الغلاف، وسلوك قصّ الصفحة الأخيرة / خارج النطاق.
Version 1.5.2
- تمت إضافة دعم لغة المستند من خلال TPdf.Language، مُربَط بإدخال فهرس PDF /Lang.
- تمت إضافة الوصول إلى النوع الفرعي MIME للمرفقات مع TPdf.AttachmentType.
- تمت إضافة anRedact إلى TPdfAnnotationSubtype وتمت إضافة مساعدات إزالة كائن الصفحة لـ TPdf و TPdfView.
- تم تحديث عروض العارض والمرفقات لعرض معلومات اللغة الجديدة ونوع المرفق عند توفرها.
Version 1.5.1
- تمت إضافة dmTwoPageContinuousWithCover لـ TPdfView بحيث تستطيع تخطيطات العارض إظهار الصفحة الأولى وحدها ثم الاستمرار بنشرات صفحتين.
- تم تحديث عروض MultiPageViewer في Delphi و C++Builder و Lazarus لكشف وضع عرض الصفحتين المدرك للغلاف.
Version 1.5.0
- تمت إضافة مجموعات اختبار تلقائية على مستوى استدلالي لـ Delphi (DUnitX) و Lazarus (FPCUnit) و C++Builder (GoogleTest). تشترك المجموعات الثلاث في مادة PDF واحدة في Tests\TestData وتشغّل نفس الحالات السبع لكل منها، تغطي تحميل المستند، ومعلومات الصفحة، واستخراج النص، والبيانات الوصفية، ودورة الحفظ الكاملة، والتحقق من ترويسة PDF، وخاصية Compressed.
Version 1.4.3
- تم تحسين عرض FontProperties لإظهار واجهات بيانات وصفية للخطوط في كل من TPdfView و TPdf، بما في ذلك مقابض الخطوط، وحجم بيانات الخط، ومقاييس الأحرف.
- تمت إضافة خصائص فحص الأحرف والخطوط المُفهرسة في TPdfView وتم تحديث عرض FontProperties للاستعلام عن البيانات الوصفية لخط الكائن النصي.
Version 1.4.2
- تمت إضافة خصائص فحص الأحرف والخطوط المُفهرسة إلى TPdf لتحليل النص دون الحاجة إلى عارض. تستعلم خصائص مُفهرسة بالأحرف (CharacterAngle و CharacterFontSize و CharacterFontWeight) عن مقاييس لكل حرف من تدفق نص الصفحة الحالية. تستعلم خصائص مُفهرسة بكائن الصفحة (FontAscent و FontBaseName و FontData و FontDescent و FontFamilyName و FontHandle و FontIsEmbedded و FontItalicAngle و FontWeight) عن البيانات الوصفية للخط لأي كائن نصي على الصفحة الحالية.
- تُعيد كائنات الصفحة غير النصية قيمًا صفرية أو فارغة آمنة لجميع خصائص Font* بدلًا من إثارة خطأ، مما يجعل من السهل التكرار على كل كائن صفحة وفحص الكائنات النصية فقط.
- تقرأ FontBaseName اسم الخط الأساسي PostScript مباشرةً بدلًا من الرجوع إلى اسم عائلة الخط، مما يوفر معرّفًا أكثر دقة للخطوط المضمنة.
Version 1.4.1
- تمت إضافة نسخ C++Builder و Lazarus من عرض EuropeanText بحيث تستطيع جميع عائلات IDE المدعومة التحقق من توليد النص الأوروبي بعلامات تشكيل باستخدام خطوط TrueType النظامية.
- تمت إضافة نسخ C++Builder و Lazarus من عرض FormFill، بما في ذلك ملفات PDF نموذجية للنماذج، وتحرير الحقول، وإعادة توليد المظهر، وحفظ ممتلئ، وتدفقات عمل الحفظ المُسطّح.
Version 1.4.0
- تمت إضافة دعم Lazarus / Free Pascal: توفر حزمة PDFiumLaz الجديدة نفس مكونات TPdf و TPdfView والمكونات ذات الصلة تحت مجموعة ودجت LCL، مما يمدّ المكتبة إلى Lazarus IDE ومُترجم Free Pascal جنبًا إلى جنب مع حِزَم Delphi و C++Builder الموجودة.
- تمت إضافة نسخ Lazarus من العروض بحيث يستطيع مطورو Lazarus استكشاف كل ميزة بأمثلة قابلة للتشغيل.
- تم إصلاح مشكلة تجميع Lazarus حيث كانت التعريفات الشرطية في Free Pascal تُقيَّم مع فحوصات إصدار مُترجم Delphi، مما يتسبب في محاولة بناءات FPC حل أسماء وحدات خاصة بـ Delphi وفشلها.
Version 1.3.1
- تم توثيق تدفق عمل تسطيح النموذج في مجموعة المساعدة: GenerateFormAppearances و FlattenPage و FlattenAllPages وثوابت FLAT_* / FLATTEN_* ذات الصلة مغطاة الآن في TPdf و TPdfView ومرجع الـ API ومصفوفة الميزات وأمثلة البرمجة.
- تم إصلاح جدول البنية في صفحة النظرة العامة بحيث تسرد وحدات الربط الفعلية المرفقة في مجلد Lib.
Version 1.3.0
- تحسّن دعم الأحرف الأوروبية عند إنشاء ملفات PDF. تحمّل TPdf.AddText الآن وتخزّن في الذاكرة المخبأة خط TrueType النظامي المطابق قبل إنشاء كائن نصي، مما يحافظ على الأحرف ذات علامات التشكيل من اللغات التشيكية والفرنسية والألمانية والإسبانية والبرتغالية والبولندية والتركية التي لا تستطيع الخطوط القياسية المدمجة في PDFium تمثيلها.
- التطبيقات التي كانت سابقًا تنتج علامات استفهام أو رموز glyphs بديلة لنص لاتيني غير ASCII ستُعرض الآن بشكل صحيح دون أي تغيير في الكود. تمت إضافة عرض EuropeanText لتوضيح الميزة.
Version 1.2.0
- تمت إضافة تحديث مظهر AcroForm إلى TPdf: استدعاء GenerateFormAppearances بعد تعديل قيم FormField[] يُحدّث مظهر العنصر بحيث تكون القيم المعبّأة مرئية في قارئات PDF القياسية دون الحاجة إلى جلسة تحرير تفاعلية.
- تمت إضافة مساعدات تسطيح النماذج إلى TPdf (FlattenPage / FlattenAllPages) و TPdfView (FlattenPage لصفحة العرض الحالية). يُضمّن التسطيح بشكل دائم قيم الحقول المعبّأة كمحتوى صفحة عادي ويُزيل طبقة النموذج التفاعلي، مما يُنتج مستندًا ثابتًا يُعرض باتساق عبر جميع العارضات.
- تمت إضافة Demo\Delphi\FormFill لتوضيح تدفقات عمل الملء والحفظ، والملء والتسطيح، باستخدام عينة PDF لـ AcroForm.
Version 1.1.2
- تمت إضافة ضغط تدفق PDF وقت الحفظ. تُعيد خاصية TPdf.Compressed الجديدة (مُمكَّنة افتراضيًا) كتابة تدفقات المحتوى غير المضغوطة كتدفقات مضغوطة بـ FlateDecode عند الحفظ، مما يُقلّل حجم الملف بشكل ملحوظ لملفات PDF المُولَّدة برمجيًا. التطبيقات التي تتطلب مخرجات غير مضغوطة عادية يمكنها ضبط Compressed إلى False قبل استدعاء SaveAs.
Version 1.1.1
- بناءات حزمة Win64 لم تعد تتضمن وحدات تسجيل وقت التصميم، مما يمنع فشل وقت البناء عند نشر حزمة Win64 في سياق وقت تشغيل فقط.
- يبحث مُحمّل PDFium DLL الآن في المجلد الفرعي للتطبيق Win32 أو Win64 أولًا، باستخدام الأسماء القياسية pdfium.dll و pdfium.v8.dll، ويرجع إلى المجلد المسطح للتطبيق ومجلد نظام Windows. هذا يطابق تخطيط DLL المرفق مع حزمة المكوّن، مما يجعل التثبيت مباشرًا.
Version 1.1.0
- تم إصلاح عيب قصّ بصري في وضع الصفحتين في TPdfView: كان محتوى الصفحة ينزف عبر الفجوة لأن كلًا من بلاطات الصفحة اليسرى واليمنى كانت تتشارك مستطيل قصّ واحد. تقصّ كل بلاطة الآن بشكل مستقل بحيث يظل المحتوى داخل حدود صفحتها.
- تم تحسين رسالة الخطأ في عرض Delphi عندما لا يمكن العثور على PDFium DLL، مما يوفر مطالبة أوضح باسم وموقع DLL المتوقع.