¿Encontrar la resolución de la imagen en un archivo PDF?

15

Tengo el problema de que algunos usuarios creen archivos PDF muy grandes. Por otro lado, he enviado PDF desde nuestras máquinas de fax que son realmente de tamaño pequeño y totalmente imprimibles. Mi pregunta es

  • ¿Hay alguna manera de encontrar la resolución (DPI) del PDF? Busqué en internet, no pude encontrar ninguna respuesta. Verificó las propiedades del archivo, esta información no se almacenó allí, al menos en mi caso.
  • ¿Cuál es la resolución óptima de convertir un archivo de texto a PDF de imagen? ¿96 ppp, 300 ppp o más?
  • Pregunta divertida ¿Puedo cambiar el tamaño de un PDF que se escaneó con ppp alto a ppp más pequeño?

Sé que algunas respuestas pueden no estar disponibles, ya que busqué en Internet y no pude encontrar las respuestas.

Nota: Mi PDF son completamente imágenes, texto a imágenes. También estoy familiarizado con primoPDF (gratis), algo con lo que puedes experimentar

hk_
fuente

Respuestas:

18

La respuesta de slhck y el comentario de scruss merecen ser actualizados: pdfimagesahora (al menos desde la versión 0.26.5) enumera explícitamente x-ppiy y-ppi. Aquí hay una muestra de salida:

$ pdfimages -list example.pdf 
page   num  type   width height color comp bpc  enc interp  object ID x-ppi y-ppi size ratio
--------------------------------------------------------------------------------------------
   1     0 image    2244  2244  cmyk    4   8  image  no       215  0   301   301  418K 2.1%
   2     1 image     900   600  rgb     3   8  image  no       324  0  1524  1525 35.5K 2.2%

En Debian (Wheezy) y Fedora (23), pdfimagesforma parte de los poppler-utilspaquetes.

Skippy le Grand Gourou
fuente
Los míos están vacíos
theonlygusti
8

Sé que no desea extraer los datos de la imagen, pero esta es probablemente la única forma de averiguar la resolución original.


En * nix, si tiene ImageMagick's identifyy Xpdf instalados 1 :

pdfimages -j test.pdf test && for file in $(find . -name "test*.jpg"); do identify "$file"; done

¿Dónde test.pdfestá su entrada PDF? Los archivos de salida se escriben en test-000.jpg, test-001.jpgetcétera. Esto le daría el tamaño original de todas las imágenes contenidas en ese PDF 2 .

Ejemplo de salida para un archivo PDF que solo contiene una imagen grande:

./test-000.jpg JPEG 2500x1961 2500x1961+0+0 8-bit DirectClass 1.022MB 0.000u 0:00.000

1) Windows también tiene estos, pero el guión sería diferente, por supuesto.
2) Tenga en cuenta que las imágenes realmente no llevan información DPI. Simplemente hablando: eso es solo algo utilizado para imprimir y las imágenes no necesitan una medida inherente de DPI.


¿Cuál es la resolución óptima de convertir un archivo de texto a PDF de imagen? ¿96 ppp, 300 ppp o más?

En general, cualquier cosa que desee imprimir debe ser de 300 ppp o más. La mayoría de las impresoras también manejarán una resolución más alta.

slhck
fuente
2
Una versión de pdfimages (quizás más reciente que la pregunta original) del proyecto poppler añade la -lista opción: pdfimages -list test.pdf. En lugar de generar archivos, esto enumera el tamaño y el tipo de imagen. Aún así no le da resolución explícitamente, pero evita crear archivos de salida.
scruss
1
@scruss A partir de la versión 0.34.0, pdfimages -listproporciona información explícita x-ppiy y-ppimuchas otras.
Skippy le Grand Gourou
De hecho, ahora lo hace, @SkippyleGrandGourou: unos cinco años después de la pregunta. Sin embargo, pdfimages todavía no aplica esa resolución / tamaño a las imágenes que extrae.
scruss
@scruss En realidad, parece que la resolución dada por pdfimagespuede ser bastante diferente (por ejemplo, cuando la imagen es más grande que su área visible, en un PDF producido por scribus). (Desafortunadamente, realmente no tengo tiempo para presentar un informe de error ahora.)
Skippy le Grand Gourou
4

Por alguna razón, la última versión de pdfimages que puedo actualizar en mi CentOS es la versión 3.04.

Por lo tanto, no tengo la opción -list como se indicó en las respuestas anteriores. Sin embargo, la imagen de prueba creada a partir de imágenes en PDF basadas en la respuesta de slhck contiene la respuesta deseada.

Identificar -verbose test-0000.jpg | más

Image: test-0000.jpg  
Format: JPEG (Joint Photographic Experts Group JFIF format)  
Mime type: image/jpeg  
Class: DirectClass  
Geometry: 6600x5100+0+0  
Resolution: 600x600  
Print size: 11x8.5

Por lo tanto, el dpi se muestra explícitamente en la sexta línea usando la opción -verbose en el comando de identificación.

Entonces, la respuesta de slhck se puede modificar a lo siguiente.

pdfimages -j test.pdf test && para el archivo en $ (find. -name "test * .jpg"); identificar -verbose "$ archivo" | awk 'NR == 6'; hecho

En otra nota, intenté correr

Identificar -verbose test.pdf

Format: PDF (Portable Document Format)  
Mime type: application/pdf  
Class: DirectClass  
Geometry: 792x612+0+0  
Resolution: 72x72  
Print size: 11x8.5  

Parece que Imagemagick siempre asume 72 ppp, por lo que la información impresa aquí parece ser incorrecta.

kykong
fuente
1

Un archivo PDF no tiene una resolución inherente, cada imagen ráster dentro de él (si la hubiera) tendrá su propia resolución. No conozco una manera simple de extraer un solo número para la resolución mediana / modal de XObjects de imágenes incrustadas.

RedGrittyBrick
fuente
Por cierto, no estoy interesado en extraer los datos de una imagen de pdf, solo quiero saber cuál fue la resolución de escaneo y si es muy alta innecesariamente me gustaría evitar eso en el futuro.
hk_
@Dave: En realidad, quería decir extraer la información sobre las imágenes incrustadas, no extraer la imagen. Pero la respuesta de slhck puede resolver su problema.
RedGrittyBrick
1

Esto funcionó con un pdf generado a partir de un mfp de Kyocera ... Esto probablemente solo sea válido para imágenes de página completa como escaneos.

  1. Abra el pdf con lector
  2. Archivo> Propiedades - Pestaña Descripción - Tamaño de página. Mi ejemplo decía 8.5x11.0 in.

  3. Abra el pdf con un editor de texto (bloc de notas), busque /widthy/height

  4. Tome la altura y el ancho y divídalos por la altura y el ancho de la página (en pulgadas)

Ejemplo:

5100/8.5=600
6600/11.0=600

Mi PDF fue escaneado a una resolución de 600x600.

Puede omitir los primeros 2 pasos si conoce el tamaño del documento (normalmente A4 es 8.27x11.69).

Jeff21050
fuente
0

Para responder a su segundo punto, además de la mención de @slhck sobre dpi de impresora, 300 ppp también es el número mínimo recomendado típico para OCR con tamaños de fuente de 10 + pt.

Además, una pantalla de computadora portátil moderna de 15 "4K también tiene aproximadamente 280PPi, por lo que si desea ver un A4 completo en la pantalla (horizontal) no hay punto de escaneo a más de ~ 320 ppp, porque cualquier documento más alto que eso será reducido. Por supuesto, esto no importa si planea hacer un acercamiento, entonces es posible que necesite más ppp.

Para responder a sus otros dos puntos, hoy en día al menos puede usar Acrobat Pro para verificar la resolución y el DPI de la imagen, y también puede editarla.

jiggunjer
fuente