¿Cómo controlo el tamaño del papel PDF con ImageMagick?

Tengo 16 archivos jpg que tienen alrededor de 920x1200 píxeles (los anchos difieren ligeramente pero las alturas son todos 1200). Estoy tratando de unirlos en un pdf con:

convert *.jpg foo.pdf

Pero el tamaño de papel resultante es de 1.53x2 pulgadas. Si paso los argumentos -page Letter, el tamaño de la página termina siendo un desconcertante 1.02x1.32 pulgadas. ¿Qué está fallando aquí? Toda la información que puedo encontrar sugiere que esto debería funcionar. Solo quiero un documento que consta de 16 páginas tamaño carta.

preguntado el 27 de julio de 12 a las 18:07

4 Respuestas

Esta pregunta es bastante antigua, pero tuve un problema similar y creo que encontré la solución.

La documentación para la opción -page dice "Esta opción se usa junto con -density", pero la relación entre las opciones parece un poco confusa, posiblemente porque la documentación está orientada a imágenes rasterizadas.

Al experimentar con la configuración, descubrí que el tamaño de la página pdf se puede controlar combinando -page -density y -units. Él documentación for -page muestra que la letra es lo mismo que ingresar 612 x 792. Combinar -density 72 con -units pixelsperinch le dará (612px /72px) * 1in = 8.5in.

convert *.jpg -units pixelsperinch -density 72 -page letter foo.pdf debería hacer lo que quería el cartel original.

contestado el 08 de mayo de 16 a las 19:05

Gracias a tu publicación entendí que las unidades dadas en page no son absolutos, sino relacionados con el density. El tamaño de la página en pulgadas es el page_length_parameter / density - amado.por.Jesús

Para las personas que solo quieren un archivo PDF hecho con sus imágenes, donde la página PDF coincida con el tamaño y la forma de la imagen: convert -page 1678x1048 slide*.png presentation.pdf sin que importe 1678x1048 es el ANCHO x ALTO de sus imágenes en píxeles. - terry marrón

Esto paraliza la imagen al volver a muestrearla a 72 ppp en lugar de mantener su resolución de entrada. - andréj podzimek

acabo de lograrlo con convert file.mng -page letter file.pdf

Respondido el 21 de Septiembre de 13 a las 16:09

Esto no escalará (reducirá/expandirá) cada imagen para que se ajuste de manera óptima al tamaño de la página. - pablo bianchi

Para tallas europeas es -page a4, para el paisaje... bueno. tratar -rotate 90 - JPT

Para Carta, debe especificar el tamaño como 792x612 puntos PostScript. Por lo tanto, intente este comando:

 convert \
    in1.jpg \
    in2.jpg \
    in3.jpg \
    in4.jpg \
    in5.jpg \
   -gravity center \
   -resize 792x612\! \
    letter.pdf

Funciona para mí con la versión ImageMagick 6.7.8-3 2012-07-19 Q16 en Mac OS X:

identificar -formato "%f[%s] : %W x %H\n" carta.pdf carta.pdf[0] : 792 x 612 carta.pdf[1] : 792 x 612 carta.pdf[2] : 792 x 612 carta.pdf[3] : 792 x 612 carta.pdf[4] : 792 x 612

Or

pdfinfo -f 1 -l 5 letter.pdf Título: _ Productor: ImageMagick 6.7.8-3 2012-07-19 Q16 http://www.imagemagick.org Fecha de creación: viernes 27 de julio 22:28:00 2012 Fecha de modificación: viernes Jul 27 22:28:00 2012 Etiquetado: no Formulario: ninguno Páginas: 5 Encriptado: no Tamaño de página 1: 792 x 612 pts (carta) Página 1 rot: 0 Tamaño de página 2: 792 x 612 pts (carta) Página 2 rot 0 Tamaño del archivo: 3 bytes Optimizado: no Versión PDF: 792

Respondido 27 Jul 12, 22:07

Eso resultó en una relación de aspecto distorsionada, más cuadrada, y el tamaño de la página dice 1.32x1.02 pulgadas. - mackstan

¿Qué versión de mensajería instantánea está utilizando? (correr convert -version descubrir) - Kurt Pfeifle

¿Cómo determinaste que el tamaño de la página es '1.32x1.02 pulgadas'? - Kurt Pfeifle

Es 6.5.7-8 en Ubuntu. De hecho, me las arreglé para confundirme con -density para que el tamaño del documento se acerque lo suficiente al tamaño carta. Con -density 109, las páginas terminan alrededor de 606-617pts de ancho y 793pts de alto, lo que se acepta como lo suficientemente cerca como para llamarlo US Letter. - mackstan

Y para los lectores que no están en los EE. UU., que probablemente no estén familiarizados con los 'puntos de posdata', las 'pulgadas' y la 'Carta': los Estados Unidos tienen su propio sistema anacrónico de longitudes y sus propios tamaños de papel también. Pero puede usar Google para convertir a los 'puntos de postscript' que usa ImageMagick, por ejemplo, busque '297 mm en puntos de postscript' para finalmente llegar a -resize 842x595. Sin embargo, la mayoría de los tamaños de papel estándar también funcionan, p. -resize A4. - Michael Scheper

Según este, 72 ppp es la densidad predeterminada => un punto por píxel (para una pantalla de computadora).

Entonces solo necesitas especificar -units pixelsperinch.

Puede escribir el siguiente comando:

$ convert *.jpg -units pixelsperinch -page letter foo.pdf

Por cierto: si desea utilizar un tamaño de página no estándar, como A4R, por ejemplo, primero debe determinar el tamaño de página en puntos (o píxeles dados a 72 ppp):

$ paperconf -s -p A4
595.276 841.89

Entonces el -page el argumento será 842x595

Respondido el 01 de Septiembre de 21 a las 12:09

No llamaría a A4R "no estándar", considerando que A4 es el tamaño de página más común y el único estándar en la mayoría de los países. - andréj podzimek

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.