Использование Ghostscript для преобразования многостраничного PDF в один JPG?
Я знаю, что Ghostscript может конвертировать PDF-файлы в JPG, а в случае многостраничного PDF-файла может конвертировать каждую страницу в отдельный JPG. Но возможно ли сделать так, чтобы он копировал их в один JPG, чтобы страницы вставлялись друг в друга, например, верхняя половина JPG - это страница 1, нижняя половина - страница 2? Или мне нужно использовать другую программу (и может ли это сделать ImageMagick?), Чтобы объединить страницы JPG в одно изображение?
2 ответа
Да, вам придется конвертировать каждую страницу PDF в один файл JPG (Ghostscript может это сделать).
Затем объедините получившиеся файлы JPG с помощью другой программы ( ImageMagick или GraphicsMagic могут сделать это, используя свои montage
суб-команд).
Я не знаю ни о каком программном обеспечении, которое может сделать это за один раз.
Преобразование PDF в 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
Это создаст JPG с именами pdffile-001.jpeg, pdffile-002.jpg и т. Д. Параметр *-dJPEGQ=95"устанавливает" Качество JPEG "на 95%. Используется разрешение"600x600 точек на дюйм ". Возможно, вам понадобится дополнительно контролируйте размер страниц в результате JPG в случае, если ваш 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
многократное сшивание JPG с montage
(ImageMagick или GraphicsMagick): montage
Команда (в этом примере используется ImageMagick) позволяет управлять шаблоном листов. Если вы используете, например, -tile 4x3
Вы получите этот макет наложения:
1 2 3 4
5 6 7 8
9 10 11 12
Вы можете использовать эту команду для сшивания 12 отдельных JPG в один:
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, и вы хотите сохранить это, но также добавьте интервал 11pt к горизонтали и 22 pt к вертикальному направлению плитки (плюс 4pt сильные серые границы / линии рамки) вокруг каждой плитки), сделайте это:
montage ^
-border 4 ^
-tile 4x3 ^
-geometry 595x842+11+22 ^
c:/path/to/jpeg-dir/pdffile-*.jpeg ^
c:/path/to/final.jpg
РЕДАКТИРОВАТЬ 2: (Пропущена еще одна важная подсказка.) Если вы не хотите терять хорошее качество изображения во время процесса сшивания / монтажа, который создал ваше преобразование PDF в 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
Поскольку в ImageMagick встроена поддержка GhostScript, вы можете сделать все это за один раз:
montage -tile 5 thispdfis25pages.pdf tiledoverview.jpg
который займет каждую страницу и создаст один длинный jpeg из них сквозной.