PDFium Delphi Component Docs

FPdfPreflightReport الوحدة

الوحدة: FPdfPreflightReport
يبني كائن تقرير قابلًا لإعادة الاستخدام والاستعلام من مُصادقات معايير PDF المدمجة ويصدّر نصًا و HTML و Markdown و JSON و CSV و SARIF 2.1.0 و JUnit XML و NDJSON أو XML أصليًا

الصياغة

function BuildPdfPreflightReport(Pdf: TPdf): TPdfPreflightReport; overload;
function BuildPdfPreflightReport(Pdf: TPdf; Standards: TPdfPreflightStandards): TPdfPreflightReport; overload;
function PdfPreflightIssueSeverity(Standard: TPdfPreflightStandard; const Code, Category: string): TPdfPreflightSeverity;
function PdfPreflightSeverityName(Severity: TPdfPreflightSeverity): string;
function PdfPreflightStandardName(Standard: TPdfPreflightStandard): string;
function PdfPreflightStatusName(Status: TPdfPreflightStatus): string;
function CreateDefaultPdfValidationRuleRegistry: TPdfValidationRuleRegistry;
function ValidatePdfFilesParallel(const FileNames: array of string; Registry: TPdfValidationRuleRegistry; const Options: TPdfBatchValidationOptions): TPdfBatchValidationReport;

الأنواع العامة

النوعالوصف
TPdfPreflightStandardمنتقي معايير بقيم ppsPdfA و ppsPdfUa و ppsPdfE و ppsPdfX و ppsPdfR و ppsPdfVT
TPdfPreflightStandardsنوع مجموعة تستخدمه BuildPdfPreflightReport؛ وينتقي AllPdfPreflightStandards كل معيار مدعوم
TPdfPreflightStatusحالة لكل معيار: pfsPass أو pfsActionRequired أو pfsReview
TPdfPreflightSeverityخطورة المشكلة بقيم psevInfo أو psevWarning أو psevError؛ و TPdfPreflightSeverities هي مجموعة الترشيح المطابقة
TPdfPreflightIssueصف مشكلة بـ StandardName ورمز المشكلة والفئة والخطورة والوصف و Recommendation، مع بحث MatchesText غير الحساس لحالة الأحرف وهُوية StableKey
TPdfPreflightIssueCategoryCountصف فئات المشكلات المجمَّع الذي تعيده IssueCategoryCounts
TPdfPreflightSeverityCountصف الخطورة المجمَّع الذي تعيده SeverityCounts مع Severity و SeverityName و Count
TPdfPreflightIssueCodeCountصف المعيار ورموز المشكلات المجمَّع الذي تعيده IssueCodeCounts مع StandardName و Code و Count
TPdfPreflightStandardResultنتيجة معيار واحدة بـ StandardName و ConformanceName و IsCompliant و StatusName و Priority و NextAction ومصفوفة Issues وعدّادي الخطورة ErrorCount و WarningCount و HighestSeverity و IssueCount وبحث رموز المشكلات عبر HasIssueCode
TPdfPreflightReportتقرير كامل باسم SourceFile وطابع GeneratedAt الزمني و ScopeNote ومصفوفة Results لنتائج المعايير وعدّادات الملخص ActionRequiredStandardCount و CompliantStandardCount و NonCompliantStandardCount و PassedStandardCount و ReviewStandardCount و StandardCount و HighestSeverity و TotalIssueCount ومساعدات الاستعلام FilterByStandards و FilterByCategory و FilterBySeverities و SearchIssues و FlattenIssues و HasIssueCode و FindStandard و Fingerprint و IssueCategoryCounts و IssueCodeCounts و SeverityCounts ومساعدات التصدير ToCsv و ToHtml و ToMarkdown و ToJson و ToNdjson و ToSarif و ToJUnitXml و ToText و ToXml مع إجراءات SaveXxxToFile المطابقة
TPdfValidationRuleبند ملف تعريف تصريحي بمعرِّفه Id و Profile و Clause والخطورة و DependencyIds وإرشاد إصلاح FixHint و IssueCode، و Predicate من نوع مشكلة أو معيار أو مخصص ينتقيه PredicateKind
TPdfValidationBudgetيحد القواعد المنتقاة (MaxRules) والإخفاقات المُبلَّغة (MaxIssues) والكائنات المزارة (MaxObjects) والاستدعاء الذاتي (MaxRecursionDepth) وبايتات الأدلة (MaxEvidenceBytes) والذاكرة المحجوزة (MaxMemoryBytes) والوقت المنقضي (TimeoutMilliseconds)
TPdfValidationOptionsينتقي Profiles و Severities، ويزوِّد Budget، ويُمكِّن FastFail، ويدعم الإلغاء التعاوني عبر CancellationToken
TPdfValidationExecutionContextسياق تنفيذ محدود يسلَّم إلى دوال التقييم المخصصة؛ يخزن Create الخيارات ويبدأ ساعة التشغيل، ويفرض Checkpoint و ConsumeEvidence و ConsumeObjects و EnterRecursion و LeaveRecursion و ReserveMemory و ReleaseMemory الميزانية، وتكشف BudgetExceeded و BudgetReason و EvidenceBytes و ObjectsVisited و RecursionDepth و ReservedMemory و PeakReservedMemory و StartTick العدّادات الحية
TPdfValidationRuleRegistryسجل قواعد آمن للخيوط؛ يدير Create و Destroy القسم الحرج، ويعدلان RegisterRule و Clear المجموعة المسجلة، ويقرؤها Count و Snapshot تحت القفل، ويصادق Execute على تقرير بأدلة وتوقيت لكل بند
TPdfBatchValidationOptionsيتحكم في WorkerCount والمعايير و ValidationOptions المتداخلة و FailFast على مستوى المستند والإلغاء عبر CancellationToken
TPdfBatchValidationReportنتائج لكل مستند بترتيب الإدخال مع توزيعات مشكلات مجمَّعة و ElapsedMilliseconds وحالة إنهاء ومجاميع WorkerCount و PassedDocumentCount و FailedDocumentCount و CancelledDocumentCount و ErrorDocumentCount
TPdfARepairPlanخطوات إصلاح Steps مرتبة حسب التبعية ومصنفة بالفئة والسلامة وحاجة إعادة الكتابة وأثر التوقيع وحالة الحجب، مع مجاميع DocumentHasSignatures و AllowSignatureInvalidation و BlockedStepCount و AutomaticStepCount و ManualStepCount و IsExecutable ومخرجات JSON عبر ToJson
TPdfARepairCategoryيصنّف عمل الإصلاح كعمل parcSecurity أو parcFonts أو parcColour أو parcAttachments أو parcStructure أو parcMetadata أو parcOther
TPdfARepairSafetyparsAutomatic أو parsReviewRequired أو parsManual
TPdfARepairStepإجراء إصلاح مرتب واحد بـ Order والفئة و IssueCode والإجراء و Evidence والتبعية و Safety، مع RequiresFullRewrite و InvalidatesSignatures و Blocked
TPdfXProductionPreflightOptionsيتحكم في عتبة MinimumImageDpi و TreatTransparencyAsErrorBeforePdfX4 وإبلاغ IncludeInformationalColourants
TPdfXProductionPreflightReportنتيجة Validation لـ PDF/X مع معطيات Pages لكل صفحة و HasOutputIntent و HasEmbeddedFonts و HasTransparency و HasOverprint و SeparationCount و DeviceNCount و MinimumEffectiveDpi ومصفوفة Issues و ErrorCount و IsProductionReady ومخرجات JSON عبر ToJson
TPdfXProductionIssueKindيصنّف مشكلات pxpikOutputIntent و pxpikPageBox و pxpikFont و pxpikColourant و pxpikTransparency و pxpikOverprint و pxpikSeparation و pxpikImageResolution
TPdfXProductionIssueنتيجة إنتاج مركَّزة واحدة بـ Kind والخطورة و PageNumber و ObjectIndex و Evidence
TPdfXProductionPageمعطيات لكل صفحة تشمل PageNumber و HasMediaBox و HasTrimBox و HasBleedBox و HasArtBox و TextObjectCount و PathObjectCount و ImageCount و HasTransparency و MinimumEffectiveDpi
TPdfValidationPredicateKindينتقي تقييم القاعدة بقيمة pvpkIssueAbsent أو pvpkStandardPass أو pvpkCustom
TPdfValidationRuleStatuspvrrsPass أو pvrrsFail أو pvrrsSkipped أو pvrrsError
TPdfValidationRunStatusيُبلِّغ عن pvrsComplete أو pvrsFastFailed أو pvrsBudgetExceeded أو pvrsCancelled أو pvrsError
TPdfValidationRuleResultنتيجة لكل قاعدة بـ RuleId و Profile و Clause والحالة و Evidence وإرشاد إصلاح FixHint و ElapsedMilliseconds
TPdfValidationRunتنفيذ سجل محدود واحد مع مصفوفة Results وعدّادات PassedRuleCount و FailedRuleCount و SkippedRuleCount و ErrorRuleCount و ObjectsVisited و EvidenceBytes و PeakReservedMemory و ElapsedMilliseconds و IncompleteReason ومساعدات المطابقة
TPdfPreflightIssues, TPdfPreflightStandardResultsمصفوفتان ديناميكيتان تحملان صفوف المشكلات ونتائج كل معيار
TPdfPreflightIssueCategoryCounts, TPdfPreflightSeverityCounts, TPdfPreflightIssueCodeCountsمصفوفات ديناميكية تعيدها المجمِّعات للفئات والخطورة ورموز المشكلات المستقرة
TPdfARepairStepsخطوات إصلاح PDF/A مرتبة حسب التبعية يخزنها TPdfARepairPlan
TPdfXProductionPages, TPdfXProductionIssuesمعطيات إنتاج لكل صفحة ومشكلات إنتاج PDF/X مركَّزة
TPdfValidationProfiles, TPdfValidationRules, TPdfValidationRuleResultsأسماء ملفات التعريف المنتقاة والقواعد التصريحية المسجلة ونتائج التنفيذ لكل قاعدة
TPdfValidationRulePredicateاستدعاء قاعدة مخصص يقيّم تقريرًا عبر سياق تنفيذ محدود ويعيد أدلة تشخيصية
TPdfBatchValidationItemStatusحالة لكل مستند بقيم pbvisPending أو pbvisPass أو pbvisFail أو pbvisCancelled أو pbvisError
TPdfBatchValidationStatusحالة الدفعة الكاملة بقيم pbvsComplete أو pbvsPartial أو pbvsCancelled أو pbvsFailed
TPdfBatchValidationItemملف إدخال واحد بتقرير Preflight الخاص به ونتيجة Validation للقواعد والحالة ونص ErrorMessage و ElapsedMilliseconds
TPdfBatchValidationItemsنتائج لكل مستند بترتيب الإدخال تعيدها المصادقة المتوازية

الوصف

يستدعي BuildPdfPreflightReport دوال ValidatePdfA و ValidatePdfUa و ValidatePdfE و ValidatePdfX و ValidatePdfR و ValidatePdfVT لمستند TPdf نشط ويعيد TPdfPreflightReport

يحتوي التقرير صفًا واحدًا لكل معيار منتقى يضم المطابقة المكتشفة والحالة والأولوية والإجراء التالي ورمز المشكلة والفئة وخطورة Info / Warning / Error والوصف والتوصية. وتكشف عدّادات الحالة والخطورة والفئة ورموز المشكلات بيانات ملخص قابلة لإعادة الاستخدام

توفر FindStandard و HasIssueCode و FlattenIssues و SearchIssues و FilterByStandards و FilterBySeverities و FilterByCategory مشاهد استعلام في الذاكرة. وتحفظ التقارير المُرشَّحة قيم المطابقة والحالة الأصلية مع إعادة مصفوفات مشكلات مستقلة

يعيد Fingerprint هُوية SHA-256 بأحرف صغيرة لمجموعة نتائج المعايير والمشكلات المرتبة. وتُستثنى مسارات المصدر وطوابع التوليد الزمنية عمدًا حتى تتشارك نتائج التحقق المكافئة بصمة واحدة

لكل تصدير To* أسلوب Save*ToFile مطابق. تُكتب الملفات مباشرة بترميز UTF-8؛ ويحتفظ CSV بـ BOM لاكتشاف Excel ويحيّد الخلايا المبدوءة بصيغ

ينفذ TPdfValidationRuleRegistry بنود ملفات التعريف التصريحية خارج مُصادقات المعايير الرتيبة. وتستطيع القواعد الاعتماد على بنود سابقة، أو انتقاء دالة تقييم مشكلة أو ملف تعريف مدمجة، أو تزويد دالة تقييم مخصصة تسجل أدلة محدودة

يوفر TPdfValidationExecutionContext نقاط تفتيش تعاونية وعدّادات صريحة للكائنات والاستدعاء الذاتي وأدلة UTF-8 والذاكرة المحجوزة. ويُبلِّغ التشغيل عن الفشل السريع أو الإلغاء أو نفاد الميزانية كحالة غير مكتملة لا كنتيجة مطابقة تامة

يمنح ValidatePdfFilesParallel كل عامل مستند TPdf خاصًا، ويحفظ ترتيب الإدخال، ويجمع عدّادات رموز المشكلات، ويسجّل النجاح والفشل والإلغاء وأخطاء التحميل لكل ملف بشكل مستقل

PDFium ليست آمنة عبر الخيوط (thread-safe) بين المستندات، لذا يفتح العاملون الملفات ويفحصونها واحدًا تلو الآخر تحت قفل مشترك ولا يشغّلون سوى تقييم القواعد بالتوازي؛ ولذلك فإن رفع WorkerCount يسرّع السجلات الغنية بالقواعد لا تحميل المستندات

يخرط BuildPdfARepairPlan أدلة PDF/A في خطوات أمان وخطوط وألوان ومرفقات وبنية وبيانات وصفية ومتبقية بترتيب التبعية. وتُحجب الخطوات المبقلة لصلاحية التوقيعات ما لم يزوِّد المستدعي تفويضًا صريحًا

يجمع BuildPdfXProductionPreflight نتيجة ملف تعريف PDF/X مع معطيات الصفحات والصور الأصلية ومسحات اللوّنات والطباعة الفوقية البنائية وفحوص صناديق الصفحات. ولا يفك ترميز أحمال الصور أو ينسخها أبدًا أثناء تحليل الدقة

صيغ المخرجات

الصيغةالشكل
Textنص صريح للمصدر ووقت التوليد وملاحظة النطاق والملخص وصفوف المعايير وخطة الإجراء وفئات المشكلات وتفاصيلها
HTMLتقرير HTML مستقل بتنسيق الحالة وجدول فئات المشكلات وجدول معايير وجدول مشكلات
Markdownعناوين وجداول Markdown للمعايير وفئات المشكلات وخطة الإجراء وتفاصيل المشكلات
JSONكائن مهيكل بـ format و sourceKind و summary و issueCategoryCounts ومصفوفات مشكلات لكل معيار
CSVصفوف ملائمة لجداول البيانات تُميَّز بـ RowType: Summary و Standard و Category و Issue
SARIF 2.1.0نتائج CI وفحص الشيفرة بمعرفات قواعد مستقرة ومستويات خطورة ورسائل إصلاح وخصائص وبصمات جزئية
JUnit XMLحالة اختبار واحدة لكل معيار منتقى، مع إصدار نتائج Action required كإخفاقات ونتائج Review كحالات متجاوزة
NDJSONكائن JSON واحد للملخص أو المعيار أو المشكلة لكل سطر من أجل الاستيعاب التزايدي دون تحميل مستند JSON واحد ضخم
XMLXML فحص مسبق أصلي ببيانات وصفية للتقرير وخصائص الملخص ونتائج المعايير والخطورة والأوصاف والتوصيات

ملاحظات

مثال

uses FPdfPreflightReport;

var
  Report: TPdfPreflightReport;
begin
  Pdf1.FileName := 'C:\Incoming\job.pdf';
  Pdf1.Active := True;
  Report := BuildPdfPreflightReport(Pdf1, [ppsPdfA, ppsPdfX]);
  Memo1.Lines.Text := Report.ToText;
  Report.SaveHtmlToFile('C:\Incoming\job.preflight.html');
  Report.SaveMarkdownToFile('C:\Incoming\job.preflight.md');
  Report.SaveJsonToFile('C:\Incoming\job.preflight.json');
  Report.SaveCsvToFile('C:\Incoming\job.preflight.csv');
  Report.SaveSarifToFile('C:\Incoming\job.preflight.sarif');
  Report.SaveJUnitXmlToFile('C:\Incoming\job.preflight.junit.xml');
  Report.SaveNdjsonToFile('C:\Incoming\job.preflight.ndjson');
  Report.SaveXmlToFile('C:\Incoming\job.preflight.xml');
end;

انظر أيضًا

ValidatePdfA, ValidatePdfX