Используя Ghostscript для преобразования многостраничного PDF в единственный JPG?

Я знаю, что Ghostscript может преобразовать PDFs в JPGs, и в случае многостраничного PDF, может разорвать каждую страницу к отдельному JPG. Но действительно ли возможно иметь его, разрывают их к одному JPG, так, чтобы страницы были вставлены друг ниже друга, например, верхняя половина JPG является страницей 1, нижняя половина является страницей 2? Или я должен использовать другую программу (и ImageMagick может сделать это?) для объединения страниц JPG в одно изображение?

15
задан 27.07.2010, 21:52

2 ответа

Да, необходимо будет преобразовать каждую страницу PDF в единственный файл JPG (Ghostscript может сделать это).

Затем сшейте вместе получающиеся файлы JPG с помощью другой программы (ImageMagick, или GraphicsMagic может сделать то использование их montage подкоманды).

Я не знаю ни о каком программном обеспечении, которое может сделать это сразу.

Преобразование PDF-to-JPG (с Ghostscript): Вы захотите удостовериться, что Вы получаете самый лучший результат. Поэтому удостоверьтесь, что Вы настраиваете параметры командной строки, таким образом, они работают на Вас. Я запустил бы с этого:

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

Это создаст JPGs, названный pdffile-001.jpeg, pdffile-002.jpg и т.д. Параметр *-dJPEGQ=95" устанавливает "Качество JPEG" на 95%. Это использует разрешение "600x600 точек на дюйм". Вы, возможно, должны дополнительно управлять размером страницы получающегося JPGs в случае, если значение по умолчанию Вашего Ghostscript не соответствует Вашим потребностям:

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

или

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

multiple-to-single-JPG-stitching с montage (ImageMagick или GraphicsMagick): montage команда (используемый в этом примере ImageMagick) позволяет Вам управлять шаблоном мозаичного размещения. Если Вы используете, например. -tile 4x3 Вы получили бы это расположение наложения:

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

Вы могли использовать эту команду для сшивания вместе 12 отдельных JPGs в один:

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

Конечно, montage имеет много дюжин дополнительных параметров, которые позволяют Вам определять фон, интервал, смещения, художественное оформление, маркировки, вращение, обрезку, подпись и т.д. для входа и получающегося JPG.


Править: (Я хотел дать эту подсказку уже в моем исходном ответе, но забыл.) montage по умолчанию будет использовать размеры мозаики 120x120 пикселей. Если Вы хотите сохранить исходные размеры страницы для каждой мозаики, необходимо добавить -geometry к командной строке. Принятие Вас имело A4 (=595x852 pt) страницы в Вашем PDF, и Вы хотите сохранить это, но также и добавить интервал 11 ПБ к горизонтали и 22 ПБ к вертикальному направлению мозаичного размещения (плюс сильные серые строки границы/кадра на 4 ПБ вокруг каждой мозаики), сделать это:

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

РЕДАКТИРОВАНИЕ 2: (Пропущенный все еще другая важная подсказка.), Если Вы не хотите терять высокое качество изображения во время процесса сшивания/монтажа, который Ваше преобразование PDF-to-JPG создало, затем также, добавляют -quality 100 параметр к Вашей командной строке как это:

montage ^
    -border 4 ^
    -tile 4x3 ^
    -geometry 595x842+11+22 ^
    -quality 100 ^
    c:/path/to/jpeg-dir/pdffile-*.jpeg ^
    c:/path/to/final.jpg
17
ответ дан 07.12.2019, 11:06

Так как ImageMagick имеет поддержку встроенного GhostScript, можно сделать все это сразу:

montage -tile 5 thispdfis25pages.pdf tiledoverview.jpg

который возьмет каждую страницу и создаст один длинный jpeg их от начала до конца.

2
ответ дан 07.12.2019, 11:06

Теги

Похожие вопросы