¿Usa Ghostscript para convertir PDF de varias páginas en un solo JPG?

15

Sé que Ghostscript puede convertir archivos PDF a JPG y, en el caso de un PDF de varias páginas, puede extraer cada página a un JPG individual. Pero, ¿es posible que los rasgue a un JPG, de modo que las páginas se peguen una debajo de la otra, por ejemplo, la mitad superior del JPG es la página 1, la mitad inferior es la página 2? ¿O tengo que usar otro programa (y puede ImageMagick hacer esto?) Para combinar las páginas JPG en una imagen?

Andrés
fuente

Respuestas:

17

Sí, tendrá que convertir cada página PDF en un solo archivo JPG (Ghostscript puede hacer eso).

Luego, junte los archivos JPG resultantes usando otro programa ( ImageMagick o GraphicsMagic pueden hacerlo usando sus montagesubcomandos).

No conozco ningún software que pueda hacer eso de una vez.

Conversión de PDF a JPG (con Ghostscript): querrá asegurarse de obtener el mejor resultado posible. Así que asegúrese de ajustar las opciones de la línea de comandos para que funcionen para usted. Yo comenzaría con esto:

gswin32c.exe ^
    -dBATCH ^
    -dNOPAUSE ^
    -dSAFER ^
    -sDEVICE=jpeg ^
    -dJPEGQ=95 ^
    -r600x600 ^
    -sOutputFile=c:/path/to/jpeg-dir/pdffile-%03d.jpeg ^
    c:/path/to/pdffile.pdf

Esto creará JPG llamados pdffile-001.jpeg , pdffile-002.jpg, etc. El parámetro * -dJPEGQ = 95 "establece" Calidad JPEG "al 95%. Utiliza una resolución de" 600x600 ppp ". controle el tamaño de página de los JPG resultantes en caso de que el valor predeterminado de su Ghostscript no se ajuste a sus necesidades:

gswin32c.exe ^
    -dBATCH ^
    -dNOPAUSE ^
    -dSAFER ^
    -sDEVICE=jpeg ^
    -dJPEGQ=95 ^
    -r600x600 ^
    -dPDFFitPage ^
    -dFIXEDMEDIA ^
    -dDEVICEWIDTHPOINTS=800 ^
    -dDEVICEHEIGHTPOINTS=600 ^
    -sOutputFile=c:/path/to/jpeg-dir/pdffile-%03d.jpeg ^
    c:/path/to/pdffile.pdf

o

gswin32c.exe ^
    -dBATCH ^
    -dNOPAUSE ^
    -dSAFER ^
    -sDEVICE=jpeg ^
    -dJPEGQ=95 ^
    -r600x600 ^
    -dPDFFitPage ^
    -dFIXEDMEDIA ^
    -sDEFAULTPAPERSIZE=a4 ^
    -sOutputFile=c:/path/to/jpeg-dir/pdffile-%03d.jpeg ^
    c:/path/to/pdffile.pdf

Costuras múltiples a simples JPG con montage(ImageMagick o GraphicsMagick): Elmontagecomando (utilizado en este ejemplo es ImageMagick) le permite controlar el patrón de mosaico. Si usa, por ejemplo-tile 4x3, obtendría este diseño de imposición:

1  2  3  4    
5  6  7  8    
9 10 11 12    

Puede usar este comando para unir 12 JPG individuales en uno:

montage ^
    -border 0  ^
    -tile 4x3  ^
    c:/path/to/jpeg-dir/pdffile-*.jpeg  ^
    c:/path/to/final.jpg

Por supuesto, montagetiene muchas docenas de parámetros adicionales que le permiten determinar el fondo, el espaciado, las compensaciones, la decoración, las etiquetas, la rotación, el recorte, el título, etc. para la entrada y el JPG resultante.


EDITAR: (ya quería dar esta pista en mi respuesta original, pero lo olvidé).montagePor defecto, usaré tamaños de mosaico de 120x120 píxeles. Si desea mantener los tamaños de página originales para cada mosaico, debe agregarlo-geometrya la línea de comandos. Suponiendo que teníapáginas A4 (= 595x852 pt) en su PDF, y desea mantener esto, pero también agregue un espacio de 11 puntos a la horizontal y 22 puntos a la dirección vertical del mosaico (más 4 puntos de líneas grises de borde / marco grises alrededor de cada mosaico), haga esto:

montage ^
    -border 4 ^
    -tile 4x3 ^
    -geometry 595x842+11+22 ^
    c:/path/to/jpeg-dir/pdffile-*.jpeg ^
    c:/path/to/final.jpg

EDIT 2: (se perdió otra pista importante). Si no desea perder la buena calidad de imagen durante el proceso de costura / montaje, que su conversión de PDF a JPG había creado, también agregue el-quality 100parámetro a su línea de comando de esta manera :

montage ^
    -border 4 ^
    -tile 4x3 ^
    -geometry 595x842+11+22 ^
    -quality 100 ^
    c:/path/to/jpeg-dir/pdffile-*.jpeg ^
    c:/path/to/final.jpg
Kurt Pfeifle
fuente
Gracias por su respuesta. No veo el parámetro de geometría en ImageMagick 6.9.9. Además, la calidad de imagen de la imagen combinada sigue siendo mala, literalmente no puedo leer una palabra de ella.
Geek
2

Dado que ImageMagick tiene soporte para GhostScript incorporado, puede hacer todo de una vez:

montage -tile 5 thispdfis25pages.pdf tiledoverview.jpg

que tomará cada página y creará un jpeg largo de punta a punta.

erjiang
fuente
1
Pero esto NO le dará JPG de alta calidad, ya que usará Ghostscript con su configuración predeterminada (y estos son bastante tímidos para la salida JPG). Hacerlo en 2 pasos (y comprobar primero tus páginas JPG) te da un control óptimo, y también te da una salida JPG bastante buena).
Kurt Pfeifle
Puede cambiar la configuración de Ghostscript utilizando la configuración de densidad de ImageMagick para el PDF y obtener resultados que son tan buenos. No golpee la mensajería instantánea si no sabe cómo usar sus opciones.
erjiang
1
k .: Hola, no toqué ImageMagick. Y sé cómo usar sus opciones, incluso aplicando perfiles de color ICC ... Pero no puede pasar todas las opciones de Ghostscript al montaje. Mi comentario se refería a su comando sugerido, que no mencionó -density.
Kurt Pfeifle
Por cierto, leí en otro lugar en SO que ImageMagick convierte internamente de PDF a PS y luego de PS a PNG cuando lo invoca de esta manera, por lo que esa es otra razón para no hacerlo de esta manera (dos conversiones => menor calidad y más lenta).
Ibrahim