function SaveAsRedacted(Stream: TStream;
const Options: TPdfRedactionOptions;
out Report: TPdfRedactionReport): Boolean; overload;
function SaveAsRedacted(const FileName: string;
const Options: TPdfRedactionOptions;
out Report: TPdfRedactionReport): Boolean; overload;
يلتقط SaveAsRedacted المستند الحالي في لقطة وصول عشوائي معزولة، ويفتح تلك اللقطة كـ TPdf منفصل، ويعالج كل مستطيل تعليق /Redact
تفعّل الافتراضات PreservePartialObjects و PreserveComplexObjects لحفظ الهندسة الآمنة المدعومة؛ يعيد النطاق المحدود النص من المحارف المحفوظة ويقص المسارات الممتلئة بلون ثابت ويمسح بكسلات الصور affine المتقاطعة
عند وجود أي تعليق تنقيح، يوسع النطاق التفصيلي جميع نسخ Form XObject في كل الصفحات حتى غير المنقحة؛ تُركب التحويلات ثم تُزال التدفقات الأصلية المشتركة بإزالة الموارد
ضع PreservePartialObjects := False لحذف الكائنات الكاملة المتقاطعة، أو أبقه مع PreserveComplexObjects := False للنمط البسيط من النص والمستطيلات والصور المحورية؛ ينطبق فحص المصدر على الثلاثة
يحذف كل تعليقات التنقيح، واختياريًا غيرها المتقاطع، ومرفقات التعليقات على الصفحات المنقحة والمرفقات الأصلية المضمنة؛ يزيل إعادة الكتابة النظيفة /AF والمحتوى النشط والنماذج والبيانات الوصفية والكائنات غير المتاحة
بعد إعادة توليد محتوى الصفحة يمسح تقليم الموارد الدقيق نطاقات موارد الصفحة و form XObject والنمط والمظهر والموروثة والمتداخلة، ويزيل الأسماء غير المستخدمة فقط قبل إسقاط الكائنات غير القابلة للوصول
النتيجة مراجعة واحدة نظيفة بلا تاريخ سابق، والمصدر المحمل سليم؛ يوقف عدم دعم الدلالات أو الهندسة العملية بدل إنتاج تنقيح ناقص
FillColor — لون بديل معتم، الافتراضي clBlackRemoveIntersectingAnnotations — يزيل التعليقات غير الحاجبة التي تتداخل مستطيلاتها مع مستطيل حجب، الافتراضي TrueMaxPageObjects — الحد الأقصى لعدد كائنات الصفحة من المستوى الأعلى الممسوحة عبر الصفحات المحجوبة، الافتراضي 1000000PreservePartialObjects — يحتفظ بمقاطع النص والمسار والصورة المدعومة غير المتقاطعة، الافتراضي TrueMaxSplitObjects — الحد الأقصى لعدد المقاطع الآمنة المنشأة عبر العملية، الافتراضي 1000000PreserveComplexObjects — توسيع Form وقص المسارات ومسح الصور affine بحدود، عند تفعيل PreservePartialObjects؛ الافتراضي TrueMaxFormDepth — عمق Form، الافتراضي 32 والنطاق 1..64MaxPathPoints — مقاطع المسار المتأثر والنقاط المولدة تراكميًا، الافتراضي 262144 والنطاق 1..1000000MaxImagePixels — البكسلات المفكوكة المعالجة تراكميًا، الافتراضي 16777216 والنطاق 1..67108864MaxGeometryOperations — العمل الهندسي التراكمي ومنها فحص النص والتعليقات وتقسيم المسارات وقصها وتقاطع البكسلات، الافتراضي 67108864 والنطاق 1..1000000000CurveTolerancePdfPoints — تسامح التسطيح التكعيبي في الصفحة، الافتراضي 0.01 والنطاق المحدود 0.0001..0.1؛ تتسع القطع بمقداره زائد 0.001 نقطة PDF وقد تحذف هامشًا آمنًا صغيرًاتُفحص هذه الخيارات وتُستخدم في النمط التفصيلي، ولا ترفع ميزانيات فحص المصدر المستقلة
يعيد TPdfRedactionReport قيم RedactionCount و RedactedPageCount و ScannedObjectCount و RemovedObjectCount و RemovedAnnotationCount و RemovedAttachmentCount و OverlayCount و SplitTextObjectCount و SplitPathObjectCount و SplitImageObjectCount و PreservedFragmentCount، وعدّي البايتات، وتقريري SanitiseReport و ResourcePruneReport المتداخلين، و Succeeded، و ErrorMessage
يضيف التفصيل ExpandedFormCount و ScannedFormChildCount و FlattenedCurveCount و GeneratedPathPointCount و MaskedImageCount و ScannedImagePixelCount و MaskedImagePixelCount و PixelIntersectionTestCount و GeometryOperationCount؛ تسجل CurveTolerancePdfPoints التسامح بعد النجاح
تعد ScannedFormChildCount الكائنات المزارة بما فيها جذور Form، وتشمل GeneratedPathPointCount نقاط القص الوسيطة وتسطيح المنحنيات
تعد MaskedImagePixelCount البكسلات التي مسحت ألوانها و alpha بالكامل، وتعد PreservedFragmentCount كائنات الاستبدال لا البكسلات أو الحدود؛ قد تكون عدادات الفشل جزئية ولا تعني إخراجًا معتمدًا
0.001 نقطة؛ تُصفّر RGB و alpha، ثم تغطي طبقة FillColor معتمة المستطيل/ActualText و /Alt و XFA والطبقات الاختيارية ذات /OCProperties و /OCG و /OCMD؛ لا تعيد البنية المنطقية أو تحفظ هذه الدلالات الخفيةTr المجهول و scn/SCN ذوات الأنماط أو الألوان الخاصة؛ التدفق المفحوص بلا مرشح أو ذو /FlateDecode واحد مسمى256 MiB والجسم بـ 64 MiB وإجمالي الأجسام بـ 256 MiB وتدفق الكائن المفكوك بـ 64 MiB وإجماليها بـ 256 MiB والخانات بـ 1000000؛ فك المحتوى محدود إضافيًا بـ 32 MiB لكل تدفق و 64 MiB إجمالًا/AF وشجرة /Names والمرفقات المضمَّنة الأصلية وتعليقات مرفقات الملفات على الصفحات المحجوبة؛ أما مدخلات الملفات المرتبطة العشوائية المتداخلة في قواميس بنية غير ذات صلة فتقع خارج الضمان الصريح لهذه الطريقة/Redact أيضًا النطاق الأمني النظيف ذي المراجعة الواحدة
var
Options: TPdfRedactionOptions;
Report: TPdfRedactionReport;
begin
Options := TPdfRedactionOptions.Default;
Options.FillColor := clBlack;
if not Pdf1.SaveAsRedacted('C:\redacted.pdf', Options, Report) then
raise Exception.Create(Report.ErrorMessage);
end;