DeduplicateResources

Belge işleme, İyileştirme

Açıklama

Yüklenen belgenin tamamındaki bayt düzeyinde aynı dolaylı kaynak akışlarını bulur, her başvuruyu belirlenimci bir standart akışa yönlendirir ve isteğe bağlı olarak yinelenen dolaylı nesneleri kaldırır

Eşitlik, hem eksiksiz akış sözlüğünün sıradan bağımsız imzasını hem de kodlanmış akış yükünün tam eşleşmesini gerektirir; dolayısıyla görüntü maskeleri, renk uzayları, kod çözme dizileri, isteğe bağlı içerik ilişkileri, yapı tanımlayıcıları, meta veriler, filtreler ve her anlamsal sözlük girdisi kararın parçası olarak kalır

Sözdizimi

Delphi

Function TPDFlib.DeduplicateResources(
  Options: Integer= PDF_RESOURCE_DEDUP_DEFAULT): Integer; Overload;
Function TPDFlib.DeduplicateResources(Options: Integer;
  Out Stats: TPDFlibResourceDedupStats): Integer; Overload;

Parametreler

OptionsKaynak tekilleştirme seçenek sabitlerinin bitsel birleşimi
StatsTarama, karmalama, karşılaştırma, başvuru, yük, kategori ve sahipsiz nesne sayaçlarını alır

Kaynak türü seçenekleri

PDF_RESOURCE_DEDUP_IMAGESGörüntü XObjects, açık görüntü maskeleri, yumuşak maske görüntüleri, alternatif görüntüler ve küçük resimleri içerir
PDF_RESOURCE_DEDUP_FORMSYeniden kullanılabilir sayfa grafikleri, ek açıklama görünümleri ve saydamlık grupları gibi Form XObject'lerini içerir
PDF_RESOURCE_DEDUP_PATTERNSAkış tabanlı döşeme desenlerini içerir
PDF_RESOURCE_DEDUP_SHADINGSAkış tabanlı ağ gölgelendirmelerini içerir
PDF_RESOURCE_DEDUP_FUNCTIONSÖrneklenmiş işlev akışlarını içerir
PDF_RESOURCE_DEDUP_ICC_PROFILESICCBased renk uzayları veya çıktı amaçlarının başvurduğu ICC profil akışlarını içerir
PDF_RESOURCE_DEDUP_FONT_PROGRAMSFontFile, FontFile2 veya FontFile3 üzerinden başvurulan akışları içerir
PDF_RESOURCE_DEDUP_CMAPSCMap ve ToUnicode akışlarını içerir
PDF_RESOURCE_DEDUP_TYPE3_CHARPROCSType 3 glif yordam akışlarını içerir
PDF_RESOURCE_DEDUP_EMBEDDED_FILESGömülü dosya akışlarını içerir
PDF_RESOURCE_DEDUP_METADATAMeta veri akışlarını içerir
PDF_RESOURCE_DEDUP_POSTSCRIPTPostScript XObject'larını içerir
PDF_RESOURCE_DEDUP_ALL_TYPESOn iki kaynak türü bayrağının tümünü birleştirir

İşlem seçenekleri

PDF_RESOURCE_DEDUP_DRY_RUNNesne grafiğini değiştirmeden veya nesneleri toplamadan yinelenen akışları ve başvuruları bildirir
PDF_RESOURCE_DEDUP_GARBAGE_COLLECTBaşvurular yeniden yönlendirildikten sonra işaretle ve süpür toplaması çalıştırır
PDF_RESOURCE_DEDUP_DEFAULTTüm kaynak türlerini çöp toplamayla birleştirir

Dönüş değerleri

Positive valueBir kuru çalıştırmada birleştirilen veya bildirilen yinelenen dolaylı akışların sayısı
0Uygun yinelenen akış bulunamadı veya belge yüklü değil

Açıklamalar

Her tam eşdeğerlik grubundaki en düşük nesne numarası ve nesil kurallı akış hâline gelir; bu da yinelenen çalıştırmaları belirlenimci kılar

Sözlük anahtarlarının sırası eşitliği etkilemez; ancak dolaylı başvuru kimliği dahil her anlamsal anahtar ve değer etkiler. Sayısal bir üst düzey Length girdisi çözümlenen değeriyle karşılaştırılır; böylece eşdeğer doğrudan ve dolaylı uzunluk biçimleri bir kaynağı paylaşabilir

Kodu çözülmüş içerikleri eşit ancak filtreleri veya kodlanmış baytları farklı olan kaynaklar ayrı kalır; sözlükleri farklı iç içe nesnelere başvuran kaynaklar da ayrı tutulur

Tüm aday yükler SHA-256 ile bir kez karmalanır ve bayt bayt doğrulama yalnızca eşleşen bir karma ve sözlük imzası demetinde çalışır

Yöntem dolaylı akışlar üzerinde çalışır çünkü ISO 32000 akışların dolaylı nesneler olmasını gerektirir ve paylaşılan kaynaklar dolaylı başvurularla temsil edilir

Yinelenen nesne baytlarını hemen geri kazanmak için belge düzenlemeden sonra ve tam kaydetmeden önce varsayılanı kullanın

Artımlı kaydetmede eski düzeltmeler fiziksel olarak bozulmadan kalacaksa PDF_RESOURCE_DEDUP_GARBAGE_COLLECT seçeneğini kullanmayın; yeniden yönlendirilen başvurular yeni düzeltmedeki yinelemeleri azaltmaya devam eder ancak önceki düzeltmelerdeki baytları kaldıramaz

Örnek

var
  Stats: TPDFlibResourceDedupStats;
  Merged: Integer;
begin
  Merged:= PDF.DeduplicateResources(
    PDF_RESOURCE_DEDUP_DEFAULT, Stats);
  PDF.SaveToFile('optimised.pdf');
end;

Ayrıca bkz

TPDFlibResourceDedupStats, PurgeUnusedResources, GarbageCollectObjects