function SaveAsSanitised(Stream: TStream;
const Options: TPdfSanitiseOptions;
out Report: TPdfSanitiseReport): Boolean; overload;
function SaveAsSanitised(const FileName: string;
const Options: TPdfSanitiseOptions;
out Report: TPdfSanitiseReport): Boolean; overload;
ينتج SaveAsSanitised نسخة PDF معقَّمة أحادية المراجعة تزيل نواقل المحتوى النشط من كتالوج المستند، ثم يشغِّل اختياريًا تقليمًا للوصولية يبيد الكائنات اليتيمة من جسد الملف
يمر خط الأنابيب ذو المرحلتين أولًا على تجريد مدخلات الكتالوج (/OpenAction و /AA و /Names و /AF و /AcroForm و /Metadata) عبر StripDictionaryEntries بوصفه تحديثًا تزايديًا، ثم يشغِّل PruneUnreachablePdfStream لإعادة كتابة الملف كمراجعة كلاسيكية نظيفة واحدة
يستخدم تحديث الكتالوج وtrailer بحث xref متفرقًا، ونوافذ محلل لا تتجاوز 1 MiB، ونسخًا بمديات 64 KiB على مسار xref العادي، بدل تجسيد PDF المحفوظ الكامل في مصفوفة بايتات واحدة
عند تمكين التقليم تكون مساحة العمل الوسيطة TPdfRandomAccessStore يحكمها SaveMemoryLimit و SaveTemporaryDirectory؛ وتُضم ذروة ذاكرته وحالة تفريغه إلى القرص في LastSaveLargestMemoryBuffer و LastSaveSpillCount
كل علم تجريد مستقل؛ ويمكِّن TPdfSanitiseOptions.Default الملف الأمني الكامل: StripOpenAction و StripCatalogActions و StripNames و StripAssociatedFiles، إضافة إلى تقليم RemoveUnreachable؛ أما StripAcroForm و StripMetadata فافتراضهما False لأنهما يزيلان حقول النماذج والبيانات الوصفية التي قد يرغب المستدعون في الإبقاء عليها
الإخراج دائمًا مراجعة واحدة بلا تاريخ تزايدي عندما RemoveUnreachable=True
Options — سجل TPdfSanitiseOptions؛ استخدم Default للملف الأمني القياسيReport — يستقبل عدد المدخلات المجردة وعدد الكائنات المقلَّمة وعدّ البايتات وأي خطأStripNames قاموس /Names بالكامل بما فيه /JavaScript و /EmbeddedFiles و /Dests و /AP؛ وهذا عدواني بقصد في التعقيمStripAssociatedFiles مدخل /AF على مستوى الكتالوج وافتراضه TrueStripMetadata كلا /Metadata في الكتالوج (XMP) و /Info في trailer/AA و /A الخاصة بكل تعليق في هذه الطريقة؛ يُزال المحتوى النشط على مستوى الكتالوج وحدهTryReadTrailerInfo الأساسية/AcroForm يزيل حقول التوقيع ويبطل التوقيعات الموجودة
var
Options: TPdfSanitiseOptions;
Report: TPdfSanitiseReport;
begin
Pdf1.FileName := 'C:\Untrusted.pdf';
Pdf1.Active := True;
Options := TPdfSanitiseOptions.Default;
Pdf1.SaveAsSanitised('C:\Sanitised.pdf', Options, Report);
end;