¿Cómo convertir PDF a imagen?

327

Tengo el requisito de convertir páginas PDF a imágenes. Hay una imagen de fondo con algo de texto escrito, así que cuando guardo esto como imagen solo se guardó la imagen de fondo.

¿Hay algún software disponible para el mismo para que la página completa se pueda convertir en imagen?

Deependra Solanky
fuente
Aparentemente, también es posible con inkscape: stackoverflow.com/a/15484727/32453
rogerdpack

Respuestas:

299
  1. Instala imagemagick .

  2. Usando una terminal donde se encuentra el PDF:

    • Para el documento completo:

      convert -density 150 input.pdf -quality 90 output.png
      
    • Para una sola página:

      convert -density 150 input.pdf[666] -quality 90 output.png
      

Por lo cual:

  • Se puede elegir PNG, JPG o (prácticamente) cualquier otro formato de imagen.

  • -density xxxestablecerá el DPI en xxx(los comunes son 150 y 300).

  • -quality xxxconfigurará la compresión xxxpara los formatos de archivo PNG, JPG y MIFF (100 significa que no hay compresión).

  • [666]solo convertirá la página 667 a PNG (la numeración basada en cero [0]es la primera página).

  • Todas las demás opciones (como recorte, escala de grises, etc.) se pueden ver en el sitio web de Image Magic .

Vida binaria
fuente
2
La respuesta como es funciona pero la resolución es muy pobre. Por lo tanto, actualmente no es una respuesta que sea útil. Tal vez si convertir tiene algunos parámetros que se pueden especificar, esto podría cambiar.
Elijah Lynn el
48
Esta respuesta es de mayor calidad askubuntu.com/a/50180/11929
Elijah Lynn
66
Puede cambiar la densidad agregando el -density 300parámetro
OHLÁLÁ
44
Entonces, ¿alguien puede confirmar que especificar densidad lo hace "tan bueno" como las otras respuestas aquí, o no? También como una nota a los seguidores, ImageMagick llama a "ghostscript" para convertir en realidad de PDF a PNG por ejemplo: gs -q NOPROMPT ...-sDEVICE=pngalpha -r150x150 -sOutputFile=/var/tmp/Yf%d -f/var/tmp/L -f/var/tmp/Fic1y si usted consigue convert: no images defined output.pngesto significa que usted no tiene instalado Ghostscript ...
rogerdpack
44
Se ha deshabilitado el análisis de PDF en imagemagick - bugs.archlinux.org/task/59778 - se puede habilitar manualmente editando el /etc/ImageMagick-7/policy.xmlarchivo y eliminándolo PDFde<policy domain="coder" rights="none" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" />
Jezor
393

Puede usar pdftoppmpara convertir un PDF a PNG:

pdftoppm input.pdf outputname -png

Esto generará cada página en el PDF usando el formato outputname-01.png, 01siendo el índice de la página.

Convertir una sola página del PDF

pdftoppm input.pdf outputname -png -f {page} -singlefile

Cambiar {page}al número de página. Está indexado en 1, por -f 1lo que sería la primera página.

Especificando la resolución de la imagen convertida

La resolución predeterminada para este comando es 150 DPI. Aumentarlo dará como resultado un tamaño de archivo más grande y más detalles.

Para aumentar la resolución del PDF convertido, agregue las opciones -rx {resolution}y -ry {resolution}. Por ejemplo:

pdftoppm input.pdf outputname -png -rx 300 -ry 300
enzotib
fuente
24
Muchas gracias. ¡Mucho mejor calidad que con imagemagick o graphicsmagick!
dAnjou
77
pdftoppm es mucho más rápido que convertir
zuo
44
Esto es realmente mucho mejor que imagemagick. ¡Imagemagick realmente cambió los colores de una manera inesperada en mi caso!
NoBackingDown
13
¡Esto es bueno !, pero es un poco más fácil de escribir en -r 300lugar de especificar las resoluciones X e Y de forma independiente cuando desea establecerlas en el mismo valor.
mlc
2
Tuve mucho más éxito con pdftoppm que con imagemagick.
Michael Hays
22

IIRC GIMP es capaz de usar archivos PDF, es decir, convertirlos en imágenes. Entonces, si desea editar las imágenes de inmediato, GIMP es su amigo.

tesseract
fuente
GIMP puede abrir archivos PDF, cada página como una capa. Elegir "Exportar como" parece guardar solo la capa actual, pero puede eliminar fácilmente la capa después de exportar y ejecutar "Exportar como" nuevamente.
Dan Dascalescu
12

La respuesta actualmente aceptada hace el trabajo pero da como resultado una salida que es de mayor tamaño y sufre pérdida de calidad.

El método en la respuesta dada aquí da como resultado una salida que es comparable en tamaño a la entrada y no sufre pérdida de calidad.

TLDR - Uso pdfimages:pdfimages -j input.pdf output

Citando la respuesta vinculada:

No está claro qué quiere decir con "pérdida de calidad". Eso podría significar muchas cosas diferentes. ¿Podría publicar algunas muestras para ilustrar? Quizás elimine la misma sección de las versiones de mala calidad y buena calidad (como PNG para evitar una mayor pérdida de calidad).

Tal vez necesite usar -densitypara hacer la conversión a un dpi más alto:

convert -density 300 file.pdf page_%04d.jpg

(Puede anteponer -units PixelsPerIncho -units PixelsPerCentimetersi es necesario. Mi copia está predeterminada en ppi).

Actualización: como señaló, gscan2pdf(la forma en que lo está usando) es solo un contenedor para pdfimages(de poppler ). pdfimages no hace lo mismo que convertcuando se le da un PDF como entrada.

convert toma el PDF, lo renderiza con cierta resolución y usa el mapa de bits resultante como imagen de origen.

pdfimagesbusca en el PDF imágenes de mapa de bits incrustadas y exporta cada una a un archivo. Simplemente ignora cualquier comando de texto o dibujo vectorial en el PDF.

Como resultado, si lo que tiene es un PDF que es solo un contenedor alrededor de una serie de mapas de bits, pdfimageshará un trabajo mucho mejor al extraerlos, ya que le proporciona los datos sin procesar en su tamaño original. Probablemente también desee utilizar la -jopción pdfimages, porque un PDF puede contener datos JPEG sin procesar. Por defecto, pdfimagesconvierte todo a formato PNM, y convertir JPEG> PPM> JPEG es un proceso con pérdida.

Entonces, intenta

pdfimages -j file.pdf page

Usted puede o no puede necesitar seguir que con un converta .jpgpaso (dependiendo de qué formato de mapa de bits pdf estaba usando).

Probé este comando en un PDF que hice a partir de una secuencia de imágenes JPEG. Los archivos JPEG extraídos eran byte por byte idénticos a las imágenes de origen. No se puede obtener una calidad superior a esa.

Anmol Singh Jaggi
fuente
8

Si se escanean sus archivos PDF, las imágenes ya están almacenadas como parte de PDF. simplemente tendrá que extraerlos con pdfimages:

pdfimages my-file.pdf prefix 
VitoshKa
fuente
2
Esta es la solución perfecta para archivos PDF escaneados, ya que con esto puede, con un comando, extraer los archivos jpgs originales y sin más recompresiones.
Jose Gómez
3

Para obtener una sola página de gm convert, agregue [N] (con N el número de página que comienza en 0) al nombre del PDF, es decir, gm convert foo.pdf[11] out.pngpara obtener la 12ª página del PDF.

Para su pdftoppmuso -f N -singlefile, donde N es el número de página que comienza en 1, es decir, pdftoppm -f 12 -singlefile foo.pdf outpara el mismo resultado. Parece que siempre agrega ".png" al nombre del archivo de salida y no hay forma de detenerlo.

usuario3080602
fuente
2

Puede usar convertir y especificar una densidad más alta usando la -densityopción.

p.ej. convert -d 300 foo.pdf bar.png

Arjun
fuente
¿Puedes explicar más sobre qué es la densidad y qué puede hacer?
rɑːdʒɑ
1
@AgentCool Especifica la densidad de imagen horizontal y vertical (en ppi).
Arjun
2

Si solo desea convertir una página específica de un PDF a PNG, puede canalizar pdftka convert( descrito anteriormente ) de esta manera:

pdftk document.pdf cat 12 output - | convert - document-page-12.png
IQAndreas
fuente
1

Master PDF Editor (ver 2.2) tiene esta opción incorporada. Abra el archivo PDF y luego vaya a Archivo> Exportar a> Imágenes. Presenta un cuadro de diálogo donde puede definir diferentes opciones para la salida. Extremadamente útil. Espero que esta información ayude.

Prisa
fuente
¿Eso está en la versión gratuita o de pago? En mi versión, ¿la opción está atenuada? ¿Eso significa que tengo que pagar? ¿Hay una versión paga?
Joshua Robison
0

PDF Mod también permite exportar imágenes de todas o páginas individuales de archivos PDF.

  • Abrir archivo PDF en PDF Mod
  • Seleccionar página (s) -
  • Editar> Exportar imágenes
nhylated
fuente