Generar páginas completas como .png

Generar páginas completas como .png

Necesito generar algunos .pngs de toda la página (de hecho, necesito pegar las páginas izquierda y derecha, actualmente estoy haciendo esto con imagemagick). Soy consciente de que esto se puede hacer con la clase independiente, pero necesito hacerlo con libros completos en la clase de memorias (comoesteuno).

Podría hacer esto obteniendo el pdf y luego usando algunas utilidades de pdf, pero me preguntaba si había formas más eficientes de hacerlo (ya que lo haré miles de veces). Lo más cerca que estoy de mi resultado ideal es usar dvipng, usando la -T bboxopción, que lamentablemente omite algunos márgenes. ¿Alguna otra opción que funcione directamente con el archivo .tex o la salida .dvi?

Para un caso específico, teniendo como archivo fuente este:

\documentclass[smalldemyvopaper,11pt]{memoir}
\usepackage{lipsum} 

\begin{document}
\lipsum[1-5]
\end{document}

Y luego, al usar el comando, dvipng -T 5.675in,8.5in example.dvise muestra una imagen realmente diferente a la esperada. La 5.675in,8.5inparte fue tomada del documento de la clase de memorias.tabla 1.3. Observa cómo se corta la parte izquierda también.

ingrese la descripción de la imagen aquí

Respuesta1

Si tiene acceso a él, usaría la pdftoppmutilidad que forma parte de las popplerutilidades para manipular archivos pdf.

(No estoy seguro de lo que quiso decir con tener las páginas izquierda y derecha "pegadas").

Tomando su archivo de ejemplo (que nombro como testpng.tex) puedo ejecutar

 pdflatex testpng.tex

que genera las páginas como archivos PDF. entonces corro

 pdftoppm -png testpng.pdf tpn

(el -pnginterruptor solicita generar en formato png y el tpnargumento establece el prefijo de los archivos png de salida) Este comando genera tres archivos png (ya que comenzó con tres páginas en la salida PDF) llamados tpn-1.png, tpn-2.pngy tpn-3.png. La segunda página, por ejemplo, parece

ingrese la descripción de la imagen aquí

que creo que tiene los márgenes correctos. Puedes leer elpágina de manualpara ver qué más puede hacer.


Una alternativa es utilizar la dvipngherramienta que, como señaló el OP, se ejecuta más rápido. El problema que observó el OP es que después de especificar el tamaño del papel, los márgenes aparecen incorrectamente.

Esto se debe a que dvipnglas salidas se basan en el -Tparámetro:

  • Si -T bboxse especifica, entonces dvipng genera una imagen que es el rectángulo más pequeño que incluye
    • elorigen dvi(que por defecto es el punto a 1 pulgada tanto horizontal como verticalmente desde la esquina superior izquierda de la página)
    • y toda la tinta en la página.
  • Si -T tightse especifica, dvipng genera una imagen que es el rectángulo más pequeño que incluye toda la tinta de la página.
  • Si -T <width>,<height>genera una imagen que es un rectángulo de la dimensión especificada,cuyo contenido es el rectángulo de ese tamaño medido con respecto alorigen dvi(que, recuerde, es el punto a 1 pulgada del borde superior e izquierdo del papel).

Para ilustrar esto, considere la siguiente fuente TeX

\documentclass{book}

\usepackage{geometry}

\geometry{paperwidth=5in, paperheight=7in, inner=0.4in, outer=2in, top=1.2in, bottom=2in}
\usepackage{lipsum} 

\begin{document}
\lipsum[1-5]
\end{document}

Esto tiene márgenes muy desequilibrados. Si usa dvipng -T5in,7in, lo que verá en las dos primeras páginas es:

Página 1:

ingrese la descripción de la imagen aquí

Página 2:

ingrese la descripción de la imagen aquí

Verá que parte del texto en la página 1 está truncado, eso se debe a que el margen interior está configurado en 0,4 pulgadas, que está a menos de 1 pulgada del borde. También puede medir si desea encontrar que en ambos casos el margen superior restante es exactamente 0,2 pulgadas, lo que significa que ambos números de página ahora desaparecen.

Para obtener la página completa como se esperaba, todo lo que necesita hacer es cambiar el origen del dvi exactamente 1 pulgada tanto horizontal como verticalmente, de modo que ahora se alinee con la esquina superior izquierda de la página.Tenga en cuenta que noconjeturas o miradasse requiere.Aquí están los resultados de las mismas dos páginas usando dvipng -T5in,7in -O1in,1in; Tenga en cuenta que los márgenes fuertemente asimétricos se respetan y, a diferencia de lo queDavid sugirió, no es necesario alterar los márgenes reales del documento para establecer el parámetro de desplazamiento.

Página 1:

ingrese la descripción de la imagen aquí

Página 2:

ingrese la descripción de la imagen aquí

información relacionada