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
| Options | Kaynak tekilleştirme seçenek sabitlerinin bitsel birleşimi |
|---|---|
| Stats | Tarama, 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_IMAGES | Gö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_FORMS | Yeniden kullanılabilir sayfa grafikleri, ek açıklama görünümleri ve saydamlık grupları gibi Form XObject'lerini içerir |
| PDF_RESOURCE_DEDUP_PATTERNS | Akış tabanlı döşeme desenlerini içerir |
| PDF_RESOURCE_DEDUP_SHADINGS | Akış tabanlı ağ gölgelendirmelerini içerir |
| PDF_RESOURCE_DEDUP_FUNCTIONS | Örneklenmiş işlev akışlarını içerir |
| PDF_RESOURCE_DEDUP_ICC_PROFILES | ICCBased renk uzayları veya çıktı amaçlarının başvurduğu ICC profil akışlarını içerir |
| PDF_RESOURCE_DEDUP_FONT_PROGRAMS | FontFile, FontFile2 veya FontFile3 üzerinden başvurulan akışları içerir |
| PDF_RESOURCE_DEDUP_CMAPS | CMap ve ToUnicode akışlarını içerir |
| PDF_RESOURCE_DEDUP_TYPE3_CHARPROCS | Type 3 glif yordam akışlarını içerir |
| PDF_RESOURCE_DEDUP_EMBEDDED_FILES | Gömülü dosya akışlarını içerir |
| PDF_RESOURCE_DEDUP_METADATA | Meta veri akışlarını içerir |
| PDF_RESOURCE_DEDUP_POSTSCRIPT | PostScript XObject'larını içerir |
| PDF_RESOURCE_DEDUP_ALL_TYPES | On iki kaynak türü bayrağının tümünü birleştirir |
İşlem seçenekleri
| PDF_RESOURCE_DEDUP_DRY_RUN | Nesne grafiğini değiştirmeden veya nesneleri toplamadan yinelenen akışları ve başvuruları bildirir |
|---|---|
| PDF_RESOURCE_DEDUP_GARBAGE_COLLECT | Başvurular yeniden yönlendirildikten sonra işaretle ve süpür toplaması çalıştırır |
| PDF_RESOURCE_DEDUP_DEFAULT | Tüm kaynak türlerini çöp toplamayla birleştirir |
Dönüş değerleri
| Positive value | Bir kuru çalıştırmada birleştirilen veya bildirilen yinelenen dolaylı akışların sayısı |
|---|---|
| 0 | Uygun 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