THotPDF.OptimizeLoadedStreams Yöntemi
Seçilen yüklenen akış ailelerini yalnızca değiştirme istenen eşik kadar daha küçük olduğunda Flate olarak yeniden yazar
Bildirim
function OptimizeLoadedStreams(
FilterFamilies: THPDFLoadedStreamFilterFamilies;
MinimumSavingsBytes: Int64;
out AInfo: THPDFLoadedStreamOptimizationInfo): Integer; overload;
function OptimizeLoadedStreams(
FilterFamilies: THPDFLoadedStreamFilterFamilies;
MinimumSavingsBytes: Int64;
RecompressionMode: THPDFFlateRecompressionMode;
out AInfo: THPDFLoadedStreamOptimizationInfo): Integer; overload;
Birim
HPDFDoc
Parametreler
| Ad | Amacı |
|---|---|
FilterFamilies | Süzülmemiş, Flate, LZW, ASCII85, ASCIIHex ve RunLength adaylarını seçer |
MinimumSavingsBytes | Bir aday kaynak akışını değiştirmeden önce gereken pozitif en düşük bayt azaltması |
RecompressionMode | Standart tek geçişli yolu veya belirleyici dört stratejili yüksek oranlı Flate seçimini seçer |
AInfo | Taranan, aday, yeniden yazılan, desteklenmeyen, başarısız, öncesi ve sonrası bayt toplamları ile kurtarılan bayt toplamlarını alır |
Dönüş değeri
Yüklenen nesne grafiğinde değiştirilen akış yükü sayısını döndürür
Kullanım notları
CompressionLevelzlib hızını ve oranını seçerkenclNonegeçişi bir işlem yapma durumu yaparfrmHighRatio, varsayılan, süzülmüş, run-length ve yalnızca Huffman en yüksek sıkıştırma stratejilerini dener ve en küçük standartlarla uyumlu akışı tutar- Kod çözülen ve sıkıştırılan adaylar
LoadedStreamMemoryThreshold'dan sonra kendi geçici dosyalarına taşar; böylece büyük belge belleği sınırlı kalır - Kod çözme başarısızlığı veya yetersiz tasarruf sonrasında özgün yük ve sözlük değişmeden kalır
/DecodeParms'a sahip akışlar atlanır; böylece tahminci ve varsayılan dışı LZW semantiği yanlışlıkla değiştirilemez- Çoklu süzgeçli zincirler yalnızca her aile seçildiğinde ve desteklendiğinde uygundur
- Benimsenen yükleri kalıcı kılmak için geçişten sonra
SaveLoadedDocumentçağırın
Türler ve tanılamalar
THPDFLoadedStreamFilterFamily = (lsffUnfiltered, lsffFlate, lsffLZW,
lsffASCII85, lsffASCIIHex, lsffRunLength);
THPDFLoadedStreamFilterFamilies = set of THPDFLoadedStreamFilterFamily;
THPDFLoadedStreamOptimizationInfo = record
ScannedStreamCount: Integer;
CandidateStreamCount: Integer;
RewrittenStreamCount: Integer;
UnsupportedStreamCount: Integer;
DecodeFailureCount: Integer;
BytesBefore: Int64;
BytesAfter: Int64;
BytesSaved: Int64;
FilterStatistics: THPDFLoadedStreamFilterStatistics;
RecompressionMode: THPDFFlateRecompressionMode;
CompressionTrialCount: Integer;
end;
FilterStatistics, ek bir kod çözme geçişi zorlamadan eniyileştirme öncesi akış sayısını, kodlanan baytları ve aile başına aşama atanmasını kaydeder
Örnek
Families := [lsffUnfiltered, lsffFlate, lsffLZW];
Count := PDF.OptimizeLoadedStreams(Families, 16, frmHighRatio, Info);
if Count > 0 then
PDF.SaveLoadedDocument('optimized.pdf');