PDFium Delphi Component Docs

مساعدات هندسية محدودة للتنقيح

توفر FPdfRedaction فحص مصدر متحفظًا وهندسة تستخدمها TPdf.SaveAsRedacted؛ يوفر الأسلوب الأعلى المعاملة والتعليقات والطبقات المعتمة وإعادة توليد المحتوى والتنظيف وإزالة الموارد

تعدل المساعدات الكائنات الأصلية في نسخة المعاملة المعزولة، وترفع EPdfRedactionGeometry عند هندسة غير مدعومة أو نفاد الميزانية؛ لا تكفي وحدها لتصدير أمني كامل

التصريحات العامة

type
  EPdfRedactionGeometry = class(Exception);
  TPdfRedactionGeometryOptions = record
    MaxFormDepth, MaxObjects, MaxPathSegments, MaxFragments: Integer;
    MaxImagePixels, MaxGeometryOperations: Int64;
    CurveTolerance: Double;
    class function Default: TPdfRedactionGeometryOptions; static;
  end;
  TPdfRedactionGeometryReport = record
    ExpandedFormCount, ScannedChildCount, ClippedPathCount: Integer;
    FlattenedCurveCount, GeneratedPointCount, FragmentCount: Integer;
    MaskedImageCount: Integer;
    ScannedPixelCount, MaskedPixelCount, PixelIntersectionTestCount: Int64;
    GeometryOperationCount: Int64;
  end;

procedure ValidateDetailedRedactionSource(Source: TStream);
procedure ValidateDetailedRedactionText(PageObject: FPDF_PAGEOBJECT);
procedure ExpandRedactionForms(Page: FPDF_PAGE;
  const Options: TPdfRedactionGeometryOptions;
  var Report: TPdfRedactionGeometryReport);
procedure ClipRedactionPath(Page: FPDF_PAGE; PageObject: FPDF_PAGEOBJECT;
  ObjectIndex: Integer; const Redactions: array of FS_RECTF;
  const Options: TPdfRedactionGeometryOptions;
  var Report: TPdfRedactionGeometryReport);
procedure MaskRedactionImage(Document: FPDF_DOCUMENT; Page: FPDF_PAGE;
  PageObject: FPDF_PAGEOBJECT; ObjectIndex: Integer;
  const Redactions: array of FS_RECTF;
  const Options: TPdfRedactionGeometryOptions;
  var Report: TPdfRedactionGeometryReport);

الإحداثيات والهندسة المدعومة

تستخدم المستطيلات وتسامح المنحنيات نقاط PDF؛ تُحول نقاط المسار إلى فضاء الصفحة قبل القص، و ObjectIndex فهرس الكائن الأصلي الصفري المستخدم لحفظ ترتيب الرسم

تُرفض الشفافية و blend والأنواع غير المدعومة والمصفوفات المنفردة والأنماط والقص المركب أو غير الزائد؛ يجب أن يحتوي القص المستطيل الزائد المدعوم كل حدود الكائن

الخيارات والتقرير التراكمي

الخيارالافتراضيالمعنى
MaxFormDepth32عمق توسيع Form المتداخل
MaxObjects1000000حدود تعداد الصفحة والأبناء الموسعين تراكميًا
MaxPathSegments262144مقاطع الإدخال لكل مسار والنقاط المولدة تراكميًا
MaxFragments1000000المناطق المستطيلة المحفوظة وأجزاء الاستبدال التراكمية
MaxImagePixels16777216البكسلات المفكوكة المعالجة تراكميًا
MaxGeometryOperations67108864العمل الهندسي واختبارات تقاطع البكسلات تراكميًا
CurveTolerance0.01تسامح تسطيح التكعيب بنقاط PDF

ابدأ بـ TPdfRedactionGeometryOptions.Default وصفّر التقرير مرة قبل المعاملة؛ احتفظ به بين الاستدعاءات لتراكم النقاط والبكسلات والأجزاء وميزانيات العمليات

تصف ExpandedFormCount و ScannedChildCount التوسيع، بما فيه الجذور والأبناء؛ تصف ClippedPathCount و FlattenedCurveCount و GeneratedPointCount المسارات ونقاط القص الوسيطة؛ تصف MaskedImageCount و ScannedPixelCount و MaskedPixelCount و PixelIntersectionTestCount الصور

تعد FragmentCount كائنات الاستبدال لا الحدود أو البكسلات، وتجمع GeometryOperationCount عمل المساعدات؛ قد يصف التقرير بعد الاستثناء عملًا جزئيًا على النسخة المهملة

فحص المصدر وحد التصدير

تفحص ValidateDetailedRedactionSource الكائنات النشطة والمحتوى المفكوك قبل التعديل؛ تستدعيها TPdf.SaveAsRedacted لكل الأنماط، حتى حذف الكائن الكامل والنمط الجزئي البسيط

لا يعيد النمط بناء Tagged PDF أو حفظ شفافية اعتباطية أو دعم كل strokes والقص أو ضمان حفظ الصور المرمزة بلا فقد؛ يتطلب الإخراج الآمن حذف التدفقات الأصلية والموارد غير المستخدمة بعد التوليد كما تفعل TPdf.SaveAsRedacted

يجب توفير نسخة معزولة وفحص القدرات الأصلية والميزانيات المحدودة الموجبة، وإهمالها عند الفشل وإعادة توليد الصفحات والتنظيف وإزالة الموارد قبل التصدير

انظر أيضًا

TPdf.SaveAsRedacted, TPdf.SaveAsSanitised, FPdfCompress