Para las secuencias de comandos, necesito obtener las dimensiones de la página de un archivo PDF (en mm).
pdfinfo solo lo imprime en 'pts', por ejemplo:
Page size: 624 x 312 pts
¿Qué debo usar?
O qué unidad es 'pts' de todos modos, en caso de que quiera convertirlos ...

Respuestas:
La unidad 'pts' utilizada por
pdfinfodenota un punto PostScript. Un punto PostScript se define en términos de una pulgada y una resolución de 72 puntos por pulgada:El manual de
gvcontiene una lista de formatos de papel comunes especificados en puntos PostScript.fuente
pdfinfoveces me da el formato de papel (comoPage size: 595.28 x 841.89 pts (A4)) - Me pregunto si lo hace para una lista de tamaños de página que conoce.No es la forma más fácil, pero dada
imagemagickyunitstambién podría usarpara encontrar el tamaño de la página en pulgadas (esto puede arrojar varios resultados si el PDF usa diferentes dimensiones) y luego convertir los números de esta manera:
Lo que significa que 8.26 pulgadas son 209.9 mm (usé un PDF A4 para esto).
fuente
identifyun PDF en OS X, no obtengo ningún resultado.identifyrequiere ImageMagickEncontré el mismo problema y llegué a la siguiente solución. No me metí en la documentación de cómo se construyen los archivos PDF, solo comparé dos archivos PDF vacíos con diferentes tamaños de página.
Parece que los archivos PDF tienen todo tipo de atributos incrustados entre "<<" y ">>". Descubrí que la información del tamaño de la página está en texto plano y se puede encontrar con una simple búsqueda de expresiones regulares.
Esto puede o no ser cierto para todos los archivos PDF, pero funcionó en todo lo que pude encontrar de diferentes fuentes.
La parte relevante puede verse como cualquiera de estos para una página de tamaño A4:
Significa [0 0 ancho alto] así que aquí está mi solución súper cojo pero funcional para extraer esto:
Simplemente cambie test.pdf a su archivo.
fuente
Utilicé la respuesta maxchlepzigs para calcular el mm directamente:
$ pdfinfo test.pdf | grep "Page size" | grep -Eo '[-+]?[0-9]*\.?[0-9]+' | awk -v x=0.3528 '{print $1*x}'esto también funciona con la respuesta de Alex Knaufs, pero la identificación lleva mucho más tiempo que pdfinfo y requiere imagemagick, pero lo bueno es que puedes usar esto para múltiples archivos (es decir, haciendo un CD en un directorio y usando
*.pdf):$ identify -verbose some.pdf | grep "Print size" | grep -Eo '[-+]?[0-9]*\.?[0-9]+' | awk -v x=25.4 '{print $1*x}'El segundo
grepcomando obtiene los valores de dos puntos / pulgada. Estoy bastante seguro de que puede omitir la expresión regular grep y hacerlo directamente con awk, pero no pude resolverlo.fuente