Ошибка при преобразовании JPG в PDF

57

Каждый раз, когда я хочу конвертировать jpgфайл с pdfпомощью этой команды

convert *.jpg pictures.pdf

У меня есть это сообщение об ошибке:

convert: not authorized `pictures.pdf' @ error/constitute.c/WriteImage/1028.
Адон Нааман
источник
1
convert * .jpg pictures.pdf перезапишет все файлы pdf как один файл pictures.pdf?
Виджей
Это решение от StackOverflow сработало для меня: stackoverflow.com/questions/42928765/…
Майк

Ответы:

82

Эта проблема возникает из-за обновления безопасности: https://launchpad.net/ubuntu/+source/imagemagick/8:6.8.9.9-7ubuntu5.13

Кто-то сообщил об этом как об ошибке: https://bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1796563

Как временное решение, я редактировал /etc/ImageMagick-6/policy.xmlи изменил права PDF из noneк read|writeтам. Не уверен насчет последствий, но, по крайней мере, это позволяет мне добиться цели.

YoungFrog
источник
1
Я снова посмотрел на него, и я почти уверен, что исправление безопасности связано с kb.cert.org/vuls/id/332928 (в котором описаны различные способы обхода -dSAFER в ghostscript).
YoungFrog
3
Это действительно работает как рекламируется. Я просто закомментировал (эффективно удалил) pdf-строку. Было бы хорошо узнать, какими будут побочные эффекты! Карта политик в файле конфигурации комментирует, что это «отключить типы форматов ghostscript».
Мартен Коецер
1
Смотрите также: cromwell-intl.com/open-source/pdf-not-authorized.html
Фалько Менге
1
Я не решался изменить настройки безопасности. В качестве альтернативы imagemagick я использовал «pdftoppm -jpeg input.pdf output.jpg» (из пакета с именем poppler-utils). Эта альтернатива была опубликована в bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1796563
Вахид Пазиранде
Изменение назначение политика формат файл соответственно <политики домен = «кодировщик» прав = «прочитанное | пишет» шаблон = «PDF» /> .usually они будут на концах .THANKS
Юнус
4

Исправлено это на моем Ubuntu 16.04.6 LTS, следуя принятому ответу .

Создан простой однострочник sed, чтобы исправить это быстрее:

sudo sed -i 's#<policy domain="coder" rights="none" pattern="PDF" />#<policy domain="coder" rights="read|write" pattern="PDF" />#' /etc/ImageMagick-6/policy.xml

и программным способом.

N0rbert
источник