Convertir PDF a varias imágenes (png,jpg)

Convertir PDF a varias imágenes (png,jpg)

Leí el enlace:https://www.overleaf.com/blog/613-tip-of-the-week-how-to-convert-typeset-pdf-pages-into-raster-image-formats

Uso Texmarker 5.0.3. ¿Puedo convertir main.pdf a varias imágenes (cada página = una imagen)?

Código de ejemplo:

\documentclass[11pt]{article}
\usepackage{blindtext}
%\usepackage{tikz}
\usepackage{tcolorbox}

\begin{document}

\blindtext

\begin{tcolorbox}[width=\textwidth,height=5cm]

ABC DEF

\end{tcolorbox}

\blindtext

\newpage
\clearpage
\blindtext

\begin{tcolorbox}[width=\textwidth,height=5cm]

XXX YYY

\end{tcolorbox}
\blindtext

\end{document}

Gracias de antemano

Respuesta1

En la distribución (completa) TeXLive hay una utilidad interesante llamada pdftoppmque puede convertir PDF a PNG con algunas opciones (por ejemplo, en mi máquina Windows C:\texlive\2018\bin\win32\pdftoppm.exe). La innegable ventaja es que no es necesario instalar nada.

Al ejecutar cmdcon pdftoppm -help, obtiene el siguiente resultado que informa cómo funciona la utilidad:

ingrese la descripción de la imagen aquí

Por lo tanto, basta con escribir, por ejemplo,

C:\path\to\my\PDFfile pdftoppm -f 1 -l 2 -r 300 -png Name_Of_My.pdf My_Images

para convertir la salida PDF de dos páginas generada por LaTeX ( Name_Of_My.pdf) en archivos de imagen separados My_Images-1.pngy My_Images-2.png, donde el nombre del prefijo ( My_Images) de los archivos PNG generados proviene de la última parte de la línea de comando anterior.

La salida PNG de su MWE anterior es la siguiente...

ingrese la descripción de la imagen aquí

Respuesta2

Si entiendo correctamente, el paso PDF->imagen no lo realiza LaTeX, sino mediante una llamada externa a convert(parte deSuite ImageMagick). Quizás esto esté fuera de tema, pero...

Básicamente, una vez que lo hayas instalado, deberías poder usar este comando (al menos en Linux, creo que será lo mismo en otros sistemas operativos):

 convert -density 300 -background white -alpha remove -alpha off pdf-file.pdf page.png 

y tendrás tus páginas a 300 ppp, con nombre page-0.png, page-1.pngetc.

Tenga en cuenta que lo último convertpuede tener problemas. Asegúrate de leerhttps://stackoverflow.com/questions/42928765/convertnot-authorized-aaaa-error-constitute-c-readimage-453yhttps://github.com/ImageMagick/ImageMagick/issues/396y luego, si tiene errores, edite el suyo /etc/ImageMagick-6/policy.xmlpara decir:

  <policy domain="resource" name="memory" value="4GiB"/>
  <policy domain="resource" name="map" value="4GiB"/>
  <policy domain="resource" name="width" value="128KP"/>
  <policy domain="resource" name="height" value="128KP"/>
  <policy domain="resource" name="area" value="1.28GP"/>
  <policy domain="resource" name="disk" value="8GiB"/>

  <policy domain="coder" rights="read|write" pattern="PS" />
  <policy domain="coder" rights="read|write" pattern="EPS" />
  <policy domain="coder" rights="read|write" pattern="PDF" />
  <policy domain="coder" rights="read|write" pattern="XPS" />

En los archivos originales, los límites rightseran nonemucho más bajos, lo que dificultará la ejecución de un archivo PDF de tamaño mediano.

Respuesta3

Considero que pdftoppm(la herramienta poppler) es mucho más eficiente que imagemagick/convert, con una mejor calidad (cuando configuro una calidad demasiado alta con convert, falla). Por ejemplo, puedes hacer:

pdftoppm -jpeg -r 300 -scale-to-x 1920 -scale-to-y 1080 yourfile.pdf output-prefix

y creará muchas imágenes como output-prefix-01.jpg, output-prefix-02.jpg… (el número de 0 se determina dependiendo del número de archivos)

información relacionada