|
THotPDF.UseObjectStreams
|
Topo Anterior Próxima |
|
Empacota objetos indiretos elegíveis em streams de contêiner
Sintaxe Delphi: property UseObjectStreams: Boolean;
Sintaxe C++: __property bool UseObjectStreams;
Descrição Quando UseObjectStreams é true (e UseXRefStream também é true), EndDoc empacota todo objeto indireto elegível — dicionários, arrays, números, nomes, strings, booleanos, nulls — em um ou mais streams de contêiner
Combina naturalmente com a propriedade UseXRefStream para o pipeline gerador mais compacto de PDF 1.5+. O empacotador ObjStm deixa objetos de stream, o dicionário de criptografia e os dicionários Catalog e Info apontados pelo trailer sem compressão, de modo que mesmo parsers PDF mínimos ainda possam localizar as raízes do documento e descriptografar o conteúdo.
Default value: false (opt-in). Definir UseObjectStreams como true rebaixa silenciosamente para false quando UseXRefStream está desligado (entradas type-2 não são representáveis na tabela textual de xref conforme a spec) ou quando Version está abaixo do PDF 1.5.
Também é forçado a desligar sob PDF/A-1: a ISO 19005-1 (PDF 1.4, cláusula 6.1.4) proíbe object streams comprimidos junto com os cross-reference streams em que eles viajam, de modo que o EndDoc emite uma tabela de xref clássica sempre que PDFACompliance nomeia um nível part-1, enquanto o PDF/A-2 e o PDF/A-3 (PDF 1.7) o mantêm disponível
Exemplo de código
Redução de tamanho Em documentos dominados por dicionários indiretos pequenos (documentos multi-página, anotações, widgets AcroForm, elementos de árvore de estrutura, camadas de Optional Content), a economia é tipicamente de 20-40% do tamanho do arquivo pós-FlateDecode. Um smoke test de 30 páginas só de gráficos encolhe de 14502 bytes para 8488 bytes (-41,5%).
See Also UseXRefStream, Compression, Version, PDF Filter Support
|