Método THotPDF.OptimizeLoadedStreams

Reescribe familias seleccionadas de flujos cargados como Flate solo cuando el reemplazo es más pequeño según el umbral solicitado

Declaración

function OptimizeLoadedStreams(
  FilterFamilies: THPDFLoadedStreamFilterFamilies;
  MinimumSavingsBytes: Int64;
  out AInfo: THPDFLoadedStreamOptimizationInfo): Integer;

Unidad

HPDFDoc

Parámetros

NombrePropósito
FilterFamiliesSelecciona candidatos sin filtrar, Flate, LZW, ASCII85, ASCIIHex y RunLength
MinimumSavingsBytesReducción mínima positiva de bytes requerida antes de que un candidato reemplace su flujo de origen
AInfoRecibe los totales de bytes analizados, candidatos, reescritos, no admitidos, fallidos, antes, después y ahorrados

Valor de retorno

Devuelve la cantidad de payloads de flujo reemplazados en el grafo de objetos cargado

Notas de uso

Tipos y diagnósticos

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;
end;

Ejemplo

Families := [lsffUnfiltered, lsffFlate, lsffLZW];
Count := PDF.OptimizeLoadedStreams(Families, 16, Info);
if Count > 0 then
  PDF.SaveLoadedDocument('optimized.pdf');

APIs relacionadas