DeduplicateResources
معالجة المستندات، تحسين
الوصف
يجد تدفقات موارد غير مباشرة متطابقة بايتًا ببايت في المستند المحمل كله، ويعيد توجيه كل مرجع إلى تدفق قياسي حتمي، ويزيل اختياريًا الكائنات غير المباشرة المكررة
تتطلب المساواة توقيعًا مستقلًا عن الترتيب لقاموس التدفق الكامل وتطابقًا دقيقًا لحمولة التدفق المرمزة، فتبقى أقنعة الصور وفضاءات الألوان ومصفوفات فك الترميز وارتباطات المحتوى الاختياري ومعرفات البنية والبيانات الوصفية والمرشحات وكل مدخل قاموس دلالي جزءًا من القرار
الصيغة
Delphi
Function TPDFlib.DeduplicateResources(
Options: Integer= PDF_RESOURCE_DEDUP_DEFAULT): Integer; Overload;
Function TPDFlib.DeduplicateResources(Options: Integer;
Out Stats: TPDFlibResourceDedupStats): Integer; Overload;
المعاملات
| Options | كائن JSON يحتوي page وx وy وtolerance ومصفوفة hits وcount
يحتوي كل إصابة على حالتها الحالية |
|---|---|
| Stats | يتلقى عدادات المسح والتجزئة والمقارنة والمرجع والحمولة والفئة والكائنات اليتيمة |
خيارات نوع المورد
| PDF_RESOURCE_DEDUP_IMAGES | يشمل XObjects الصور وأقنعة الصور الصريحة وصور القناع الناعم والصور البديلة والصور المصغرة | PDF_RESOURCE_DEDUP_FORMSIncludes Form XObjects such as reusable page graphics, annotation appearances, and transparency groups PDF_RESOURCE_DEDUP_PATTERNSIncludes stream-based tiling patterns PDF_RESOURCE_DEDUP_SHADINGSIncludes stream-based mesh shadings PDF_RESOURCE_DEDUP_FUNCTIONSIncludes sampled function streams PDF_RESOURCE_DEDUP_ICC_PROFILESIncludes ICC profile streams referenced by ICCBased colour spaces or output intents PDF_RESOURCE_DEDUP_FONT_PROGRAMSIncludes streams referenced through FontFile, FontFile2, or FontFile3 PDF_RESOURCE_DEDUP_CMAPSIncludes CMap and ToUnicode streams PDF_RESOURCE_DEDUP_TYPE3_CHARPROCSIncludes Type 3 glyph procedure streams PDF_RESOURCE_DEDUP_EMBEDDED_FILESIncludes embedded-file streams PDF_RESOURCE_DEDUP_METADATAIncludes metadata streams
|---|---|
| PDF_RESOURCE_DEDUP_POSTSCRIPT | Includes PostScript XObjects |
| PDF_RESOURCE_DEDUP_ALL_TYPES | يشمل أنماط البلاط القائمة على التدفقات |
| PDF_RESOURCE_DEDUP_SHADINGS | يشمل تظليلات الشبكات القائمة على التدفقات |
| PDF_RESOURCE_DEDUP_FUNCTIONS | يشمل تدفقات الدوال المعينة |
| PDF_RESOURCE_DEDUP_ICC_PROFILES | يشمل تدفقات ملفات ICC التعريفية المشار إليها من فضاءات ألوان ICCBased أو نوايا الإخراج |
| PDF_RESOURCE_DEDUP_FONT_PROGRAMS | يشمل التدفقات المشار إليها عبر FontFile أو FontFile2 أو FontFile3 |
| PDF_RESOURCE_DEDUP_CMAPS | يشمل تدفقات CMap وToUnicode |
| PDF_RESOURCE_DEDUP_TYPE3_CHARPROCS | يشمل تدفقات إجراءات محارف النوع 3 |
| PDF_RESOURCE_DEDUP_EMBEDDED_FILES | يشمل تدفقات الملفات المضمنة |
| PDF_RESOURCE_DEDUP_METADATA | يشمل تدفقات البيانات الوصفية |
| PDF_RESOURCE_DEDUP_POSTSCRIPT | يشمل PostScript XObjects |
| PDF_RESOURCE_DEDUP_ALL_TYPES | يجمع أعلام أنواع الموارد الاثني عشر كلها |
خيارات العملية
| PDF_RESOURCE_DEDUP_DRY_RUN | يبلّغ عن التدفقات والمراجع المكررة من دون تغيير مخطط الكائنات أو جمع الكائنات |
|---|---|
| PDF_RESOURCE_DEDUP_GARBAGE_COLLECT | يجري جمع mark-and-sweep بعد إعادة توجيه المراجع |
| PDF_RESOURCE_DEDUP_DEFAULT | يجمع كل أنواع الموارد مع جمع المهملات |
قيم الإرجاع
| قيمة موجبة | عدد التدفقات غير المباشرة المكررة التي دمجها تشغيل تجريبي أو بلغ عنها |
|---|---|
| 0 | لم يُعثر على تدفق مكرر مؤهل أو لا يوجد مستند محمل |
ملاحظات
يصير أقل رقم كائن وجيل في كل مجموعة مكافئة تامة هو التدفق القياسي فتصير الإعادات المتكررة حتمية
ترتيب مفاتيح القاموس لا يؤثر في المساواة، لكن كل مفتاح وقيمة دلاليين يؤثران، شاملًا هوية المرجع غير المباشر؛ ومدخل Length الرقمي أعلى المستوى يقارن بقيمته المحسومة كي تتشارك الصيغتان المباشرة وغير المباشرة المتكافئتان موردًا واحدًا
الموارد ذات المحتوى بعد فك الترميز المتساوي لكن بمرشحات أو بايتات مشفرة مختلفة تبقى منفصلة، وكذلك الموارد التي تشير قواميسها إلى كائنات متداخلة مختلفة
كل الحمولات المرشحة تجزأ مرة واحدة بـ SHA-256، ولا يجري تأكيد بايت-ببايت إلا داخل حاوية تطابق التجزئة وتوقيع القاموس
لا يؤثر ترتيب مفاتيح القاموس في المساواة، لكن كل مفتاح وقيمة دلاليين يؤثران، شاملًا هوية المرجع غير المباشر؛ ويُقارن مدخل Length العددي العلوي بقيمته المحلولة فيمكن لصيغتي الطول المباشر وغير المباشر المتكافئتين مشاركة موردًاب تبقى الموارد ذات المحتوى المفكك المتساوي لكن بمرشحات أو بايتات مرمزة مختلفة منفصلة، وكذلك الموارد التي تشير قواميسها إلى كائنات متداخلة مختلفة
تُجزَّأ جميع حمولات المرشحين مرة واحدة بـ SHA-256، ولا يُنفذ تأكيد بايت ببايت إلا داخل سلّة تجزئة وتوقيع قاموس مطابقة تعمل العملية على التدفقات غير المباشرة لأن ISO 32000 تتطلب أن تكون التدفقات كائنات غير مباشرة وتُمثَّل الموارد المشتركة بمراجع غير مباشرة
استخدم الافتراضي بعد تحرير المستند وقبل حفظ كامل لاستعادة بايتات الكائنات المكررة فورًا
لحفظ تزايدي احذف PDF_RESOURCE_DEDUP_GARBAGE_COLLECT عندما يجب أن تبقى المراجعات القديمة سليمةً فيزيائيًا؛ وما تزال المراجع المعاد توجيهها تقلل التكرار في المراجعة الجديدة لكنها لا تستطيع إزالة بايتات من مراجعات سابقة
مثال
var
Stats: TPDFlibResourceDedupStats;
Merged: Integer;
begin
Merged:= PDF.DeduplicateResources(
PDF_RESOURCE_DEDUP_DEFAULT, Stats);
PDF.SaveToFile('optimised.pdf');
end;
انظر أيضًا
TPDFlibResourceDedupStats, PurgeUnusedResources, GarbageCollectObjects