Método THotPDF.OptimizeLoadedStreams

Reescreve famílias de fluxos carregados selecionadas como Flate apenas quando a substituição é mais pequena pelo limiar pedido

Declaração

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

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

Unidade

HPDFDoc

Parâmetros

NomeFunção
FilterFamiliesSeleciona candidatos não filtrados, Flate, LZW, ASCII85, ASCIIHex e RunLength
MinimumSavingsBytesRedução mínima positiva de bytes exigida antes de um candidato substituir o seu fluxo de origem
RecompressionModeSeleciona o caminho padrão de passagem única ou a seleção Flate determinística de alta proporção com quatro estratégias
AInfoRecebe totais de fluxos analisados, candidatos, reescritos, não suportados, com falha, de bytes antes e depois e poupados

Valor de retorno

Devolve o número de payloads de fluxo substituídos no gráfico de objetos carregado

Notas de utilização

Tipos e diagnóstico

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 regista a contagem de fluxos pré-otimização, os bytes codificados e a atribuição de fase por família sem forçar uma passagem de descodificação adicional

Exemplo

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

APIs relacionadas