Я знаю, что 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 пт) страниц в формате PDF, и вы хотите сохранить это, но и добавить интервал 11pt к горизонтали и 22 пт в вертикальном направлении кровлю (плюс 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 из них сквозной.