2011-02-09 9 views
5

Sto lavorando a uno strumento che scriverà PDF e sto cercando di trovare un modo per comprimere gli oggetti e i flussi nel PDF. Un numero di PDF che sto generando è abbastanza grande, ma può essere sostanzialmente ridotto comprimendo gli oggetti (o la maggior parte della struttura PDF) in un flusso flate. Giuro di averlo già visto prima, ma nessuno dei PDF che ho visto sembra farlo. Ho anche provato ad usare Acrobat X per comprimerlo con "whole file compression", ma sembra comprimere solo i flussi.Compressione intera PDF

Ho provato a utilizzare ObjStm, ma non ha molto supporto da altri lettori di file. Ho bisogno di qualcosa che abbia un po 'più di supporto al di fuori di Adobe.

Qualsiasi suggerimento è apprezzato!

+0

http://schnaader.info/precomp.php – Shelwien

risposta

2

in PDF è possibile avere 2 tipi di compressione: compressione

  1. flusso - i dati sono compressi utilizzando vari metodi, ma la struttura del file PDF non è compresso.
  2. compressione di oggetto - si comprime anche la struttura del file, principalmente gli oggetti che non includono flussi.

Questi sono gli unici scenari di compressione supportati in PDF. Selezione del metodo di compressione giusta dipende molto sui dati che si desidera comprimere: per il contenuto della pagina flussi di solito la compressione Flate viene utilizzato, le immagini 1bpp usano G4 CCITT o meglio JBIG2, immagini a colori sono più compressi con JPEG2000, ecc

compressione oggetto è disponibile da Acrobat 6.

1

Si può anche verificare se è possibile ridurre la dimensione dei dati (cioè i caratteri sono sottotitolati, le immagini sono al dpi ottimale, il file contiene oggetti morti).

1

Controllare lo PDF Specification, la sezione 7.5.7 (Stream oggetto) e 7.5.8 (Stream di riferimento incrociato).

Sono sicuro che iText può leggere e scrivere questi file, ma non lo uso mai in questo modo perché i risultati sono notevolmente più difficili da eseguire il debug. Potrebbe esserci un PDF di esempio ... ma non ne vedo.

Speravo che uno degli esempi di iText in Action 2nd edition riguardasse i flussi di oggetti, ma non ne ha trovato uno.