ImageMagick, Ghostscript и PDF-файлы
У меня проблема с преобразованием PDF в JPG ImageMagick и Ghostscript. Иногда я боюсь
convert multipage.pdf multipage.jpg
convert: no images defined `multipage.jpg' @ error/convert.c/ConvertImageCommand/3210.
- Он работает только с некоторыми PDF-файлами, кажется, только PDF1.3, не уверен.
- Как я вижу, делегаты ImageMagick верны для Ghostscript (в противном случае он вообще не должен работать).
Ghostscript, кажется, работает. Я бегу и получаю исключенный вывод
gs -dNOPAUSE -dBATCH -sDEVICE=jpeg -r96 -sOutputFile='page-%00d.jpg' multipage.pdf
Есть ли проблема с вызовом Ghostscript из ImageMagick? Есть ли журнал? В моей Ubuntu-инсталляции отсутствует что-то вроде шрифтов или чего-то другого?
Пробовал переустанавливать Ghostscript и ImageMagick много раз.
Запуск Ubuntu 16.04
Любые намеки приветствуются!
1 ответ
Я не уверен, что вы нашли решение, а также знаете, что это очень старый пост, и, поскольку кому-то может понадобиться информация об этом, я хотел бы поделиться возможным решением.
Как предположение. Похоже, вы пытаетесь работать с документом, состоящим из более чем одной страницы. Также неясно, был ли другой PDF-файл, над которым работала команда, одностраничным.
Но, основываясь только на предположениях, просто хочу уточнить, я предполагаю, что единственная проблема с вашей командой заключается в том, что вы не указываете, какую страницу PDF-документа вы собираетесь преобразовать в изображение. Как и во многих учебниках в Интернете, вам нужно сделать что-то вроде этого:
convert "multipage.pdf[0]" multipage.jpg
Команда указывает, что первая страница будет отображаться как изображение, а затем конвертироваться в файл JPEG.
Также имейте в виду, что новые установки ImageMagick запрещают обработку файлов PostScript. Если вы получаете сообщение об ошибке, подобное следующему:
attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408
Вам необходимо открыть
<!-- disable ghostscript format types -->
<policy domain="coder" rights="none" pattern="PS" />
<policy domain="coder" rights="none" pattern="PS2" />
<policy domain="coder" rights="none" pattern="PS3" />
<policy domain="coder" rights="none" pattern="EPS" />
<policy domain="coder" rights="none" pattern="PDF" />
<policy domain="coder" rights="none" pattern="XPS" />
Но имейте в виду, это очень важное примечание : если у вас установлена более старая версия GhostScript, делать это не рекомендуется, так как для более старых версий существует серьезная дыра в безопасности. Я рекомендую всегда поддерживать GhostScript и ImageMagick в актуальном состоянии и соответствующим образом исправлять свой код.