titulo - metadata pdf
¿Por qué la combinación de archivos PDF hace que el tamaño del archivo se multiplique? (1)
Estoy intentando separar varios archivos PDF. No son tan pesados, con la imagen ocasional. Digamos, por ejemplo, que tengo dos archivos PDF, 1.4Mb y 740kb. ¡Cuando los combino, aumentan a 6Mb!
Probé la combinación con scripts, y la mano anexa, con el mismo resultado, así que supongo que es un problema subyacente. Alguna explicación de por qué sucede sería útil, así que puedo buscar formas de evitarlo. ¿Es una falta de coincidencia en los modelos de color? Las fuentes son mínimas.
No nos está diciendo cómo combina los archivos PDF, lo que hace que su pregunta sea más bien teórica, por lo que le daré una respuesta teórica:
Parte 1
- Supongamos que tiene un archivo PDF con 10 páginas y un tamaño total de 1200 KByte.
- Supongamos que la secuencia de contenido de cada página consiste aproximadamente en 100 KByte. Desde este flujo de contenido, hay referencias a recursos compartidos.
- Supongamos que estas 10 páginas comparten 200 KByte en recursos: comparten las mismas fuentes, las mismas imágenes, etc.
Si "estalló" este PDF en 10 PDF separados de una sola página, cada PDF constará de aproximadamente 300 KByte: 100 KByte en la secuencia de contenido + 200 KByte en recursos (estoy ignorando la sobrecarga de tener 10 tablas xref separadas y trailers de archivos) )
- Si combina estos 10 archivos PDF de una sola página como si estos 10 archivos PDF no tuvieran nada en común, el tamaño total del archivo será de 10 x 300 KByte. Eso es 3000 KByte, que es más del doble del original de 1200 KByte.
- Si combina estos 10 archivos PDF separados de una sola página teniendo en cuenta que tienen recursos en común (fuentes, recursos, ...), el tamaño total será (10 x 100 KByte) + 200 KByte.
Si está utilizando iText para combinar los PDF, el uso de PdfCopy
dará como resultado el archivo PDF de 3000 KByte, porque PdfCopy
simplemente copia los documentos lo más rápido posible sin mirar el contenido del documento. Si desea el PDF de 1200 KByte, entonces necesita usar PdfSmartCopy
en cuyo caso necesitará más memoria y CPU porque iText examinará cada PDF y reutilizará los objetos que de otra manera serían redundantes.
Parte 2
En su pregunta, menciona que tiene un PDF de 1.4Mb y un PDF de 740kb, y que 1.4Mb + 740kb resultan en un PDF de 6Mb. La primera parte de mi ejemplo teórico no explica el crecimiento extremo en tamaño, así que aquí hay una segunda parte.
- En PDF 1.0, la sintaxis de PDF no se comprimió.
- A partir de PDF 1.2, las secuencias se comprimieron, pero los objetos indirectos y la secuencia de referencia cruzada se almacenaron en ASCII.
- A partir de PDF 1.5, una serie de objetos podría comprimirse en una secuencia de objetos y la tabla de referencias cruzadas también podría comprimirse.
Supongamos que sus PDF originales tienen flujos de objetos comprimidos y una tabla de referencia cruzada comprimida. Supongamos que combina estos PDF en un PDF que se parece más a un documento PDF 1.4. En ese caso, los objetos comprimidos y la corriente de referencia cruzada comprimida ya no se comprimirán, lo que dará como resultado un tamaño de archivo mucho mayor.
Parte 3?
Puede haber otras razones, dependiendo de la naturaleza de los PDF originales y de la herramienta que está utilizando para combinar los PDF. Debe aclarar si no se aplica ninguna de las opciones anteriores.