2011-03-15 36 views
6

Utilicé pdftk para descomprimir un PDF y luego lo abrí como un archivo de texto.
quiero editar el campo /MediaBox, que es en mi casoCómo recortar los márgenes de PDF utilizando pdftk y/MediaBox

/MediaBox [0 0 612 792] 

me gustaría reducir los márgenes, por ejemplo

/MediaBox [100 0 512 792] 

Por desgracia, no funciona. Puedo cambiar el 0 en un 2 o un 9 pero no puedo poner 100 por ejemplo.

¿Alguna idea de por qué?

+0

esto no es una pregunta de programación, se debe mover a otro sitio de la red – anddam

Respuesta

7

uso sed para reemplazar cualquier ocurrencia

sed 's/MediaBox \[0 0 612 792*/MediaBox \[100 0 512 792]/g'<in.pdf >out.pdf

o podofobox (dentro podofo utils)

sin necesidad de descomprimir corrientes pdf primero (según sea necesario con pdftk)

podofobox in.pdf out.pdf media 10000 0 51200 79200

como se puede ver, podofobox utiliza los valores Mediabox multiplicado por 100, ya que su escala es un múltiplo sub , entonces, simplemente necesita agregar dos ceros() a valores que puede leer en el campo MediaBox

11

La cadena 100 tiene dos números más que 0. Cuando utiliza un editor de texto y agrega caracteres, lo que hace que el archivo sea más largo. Es por eso que reemplazar con 9 o 2 o cualquier otro dígito funciona bien. Si bien un editor de texto puede usarse teóricamente para editar un pdf, no es simple y debe respetar la estructura interna del archivo. La tabla xref es una tabla que se encuentra cerca del final de un pdf que le dice al lector exactamente dónde se encuentra cada objeto. Tiene que cambiarse cada vez que se cambie la longitud o la ubicación de algo.

La razón por la que el método manual anterior que usa pdftk no funciona es porque está agregando dos bytes en el centro del archivo. Esto rompe la tabla xref.Si actualiza manualmente todos los xref s, esto funcionará, pero es potencialmente muy tedioso. Usar sed o cualquier otra herramienta de edición de texto no resolverá el problema. podofo hace el cálculo xref para usted.

+0

1- ¿Qué quiere decir con "agregar dos bytes en el centro del archivo" y qué es la tabla xref? 2-Entonces, ¿qué sugieres? – RockScience

+0

Recomiendo hacer lo que @Dingo y el Dr. Gorb ya sugirieron, que es usar software o código diseñado para manipular archivos PDF. –

+0

Eso tiene sentido, gracias – RockScience

Cuestiones relacionadas