THotPDF.CompressLoadedDocument

THotPDF

 

Top  Previous  Next

Yüklenen bir PDF'i sıkıştırır: parametresiz biçim filtresiz stream'leri yeniden sıkıştırır, options'lı biçim ise HotPDF'in sunduğu kayıpsız boyut küçültmelerinin tamamını çalıştırır

 

Delphi sözdizimi:

function CompressLoadedDocument: Integer; overload;

function CompressLoadedDocument(const Options: THPDFLoadedDocumentCompressionOptions; out AInfo: THPDFLoadedDocumentCompressionInfo): Integer; overload;

 

Açıklama

Parametresiz biçim, sıkıştırılmış yükü benimsenen stream'lerin sayısını döndürür

Uses CompressionLevel to select fastest, default, or maximum zlib compression; clNone leaves the document unchanged

Her kaynak stream'i sınırlı parçalar hâlinde işler ve yalnızca sıkıştırılmış yük daha küçükse değiştirir

Zaten /Filter taşıyan stream'lere, silinmiş stream'lere ve boş stream'lere dokunulmaz

Bu uyumluluk yardımcısı, yalnızca lsffUnfiltered seçili ve bir baytlık kazanç eşiğiyle OptimizeLoadedStreams'e devreder

Dönüştürülmüş nesne grafiğini yazmak için sıkıştırmadan sonra SaveLoadedDocument çağırın

 

Options ile

Options'lı biçim şu adımları sırayla çalıştırır; her biri kayıpsızdır: kullanılmayan sayfa kaynaklarını atar, özdeş yazı tiplerini ve Form XObject'leri birleştirir, gömülü yazı tiplerine subsetting uygular (yazı tipinin izin verdiği yerde kompakt alt kümeler), FlateDecode daha küçük olduğu zaman stream'leri yeniden sıkıştırır ve bir sonraki kaydın object stream kullanmasını sağlar. Görüntüler yeniden örneklenmez veya yeniden sıkıştırılmaz. Sonuç yeniden yazılan nesne sayısıdır; AInfo her adımı raporlar

Her adım imzanın kapsadığı baytları yeniden yazar; bu yüzden çağrı varsayılan olarak imza alanı taşıyan bir belgeyi reddeder ve hiçbir şeyi değiştirmez. Yine de sıkıştırmak için AllowSignatureInvalidation değerini ayarlayın

Tam Arial ve SimSun yazı tiplerini gömen, İngilizce ve Çince metinli üç sayfalık bir belge yaklaşık 10 MB'dan yaklaşık 20 KB'a düşer

Doc.LoadFromFile('input.pdf');
        Doc.CompressLoadedDocument(THPDFLoadedDocumentCompressionOptions.Default, Info);
        Doc.SaveLoadedDocument('output.pdf');

 

Ayrıca bkz.: THotPDF, OptimizeLoadedStreams, SubsetLoadedFonts, CompressDocument