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_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_IMAGESيشمل XObjects الصور وأقنعة الصور الصريحة وصور القناع الناعم والصور البديلة والصور المصغرة
PDF_RESOURCE_DEDUP_POSTSCRIPTIncludes 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