web-dev-qa-db-fra.com

Utilisation de GhostScript pour convertir multi-pages PDF en JPG unique?

Je sais que Ghostscript peut convertir les PDF en JPGS et, dans le cas d'un PDF multi-pages, peut déchirer chaque page à un JPG individuel. Mais est-il possible de l'avoir déchiré à un JPG, de sorte que les pages soient collées les unes des autres, par ex. La moitié supérieure du JPG est la page 1, la moitié inférieure est la page 2? Ou dois-je utiliser un autre programme (et peut-il imaginer faire cela?) Pour combiner les pages JPG en une seule image?

15
Andrew

Oui, vous devrez convertir chaque PDF page en un seul fichier JPG (Ghostscript peut le faire).

Puis cousez ensemble les fichiers JPG résultants en utilisant un autre programme ( ImageMagick ou graphiquesmagic peut faire cela à l'aide de leurs sous-commandes montage).

Je ne suis au courant d'aucun logiciel qui peut le faire en une seule fois.

PDF-TO-JPG Conversion (avec Ghostscript): Vous voudrez vous assurer que vous obtenez le meilleur résultat possible. Assurez-vous donc de modifier les options de commande de commande afin qu'ils travaillent pour vous. [~ # ~ ~] I [~ # ~] 'D début avec ceci:

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

Cela créera des JPGS appelés PDFFILE-001.JPEG, PDFFILE-002.jpg Etc. Le paramètre * -DJPEGQ = 95 "définit" la qualité JPEG "à 95%. Il utilise une résolution de "600x600 dpi". Vous devrez peut-être contrôler en outre la page de page des JPG résultant au cas où votre défaut de votre Ghostscript ne correspond pas à vos besoins:

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

ou alors

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

coutures multiples à mono-jpg avec montage (ImageMagick ou graphiqueMagick): la commande montage (utilisé dans cette L'exemple est ImageMagick) vous permet de contrôler le modèle de carrelage. Si vous utilisez par exemple -tile 4x3 vous obtiendriez cette disposition de l'imposition:

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

Vous pouvez utiliser cette commande pour assembler 12 jpgs individuels en un:

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

Bien sûr, montage a de nombreuses douzaines de paramètres supplémentaires qui vous permettent de déterminer l'arrière-plan, l'espacement, les décalages, la décoration, les étiquettes, la rotation, la culture, la légende, etc. pour l'entrée et le JPG résultant.


EDIT: (J'avais voulu donner à cette indice déjà dans ma réponse originale, mais j'ai oublié.) montage Par défaut utilisera des tailles de carreaux de 120x120 pixels. Si vous souhaitez conserver la tailles de la page d'origine pour chaque carreau, vous devez ajouter -geometry à la ligne de commande. En supposant que vous aviez A4 (= 595x852 pt) pages de votre PDF et que vous souhaitez conserver cela, mais également ajouter un espacement de 113t à l'horizontale et 22 pt à la direction verticale du carrelage (plus des lignes de bordure gris fortes et de trames de plus de 4 pistons autour de chaque tuile), faites-le:

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

edit 2: (raté encore un autre indice important.) Si vous ne voulez pas perdre la bonne qualité d'image pendant le processus de couture/montage, que votre PDF-to -JPG Conversion avait créé, puis ajoutez également le -quality 100 Paramètre à votre commande de commande comme ceci:

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

Depuis que ImageMagick est en faveur de Ghostscript construit, vous pouvez faire tout ce qui est en une fois:

montage -tile 5 thispdfis25pages.pdf tiledoverview.jpg

ce qui prendra chaque page et créera un long JPEG d'entre eux se terminer.

2
erjiang