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

AdAmacı
FilterFamiliesSüzülmemiş, Flate, LZW, ASCII85, ASCIIHex ve RunLength adaylarını seçer
MinimumSavingsBytesBir aday kaynak akışını değiştirmeden önce gereken pozitif en düşük bayt azaltması
RecompressionModeStandart tek geçişli yolu veya belirleyici dört stratejili yüksek oranlı Flate seçimini seçer
AInfoTaranan, 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ı

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');

İlgili API'ler