Проблема с пакетным преобразованием .png в .pdf с помощью convert


113
convert /home/bill/TempScan/*.png  myfile.pdf

выдает сообщение об ошибке:

convert-im6.q16: not authorized `myfile.pdf' @ error/constitute.c/WriteImage/1037.

Любая помощь будет оценена!

Ответы:


157

convertэто мощный инструмент командной строки для преобразования графики. Предположительно, это создает риски для безопасности, особенно если оно используется совместно с веб-сервером. В последних версиях Ubuntu реализован файл политики, где convertограничено его использование. По-видимому, этот файл по умолчанию запрещает «преобразовывать» несколько графических файлов в один файл PDF.

Файл политики есть /etc/ImageMagick-6/policy.xml. Вы можете редактировать этот файл как пользователь root для изменения политик.

Устранение всех ограничений использования

Для пользователей настольных компьютеров, не использующих веб-сервер, достаточно просто снять эти ограничения. Для этого можно удалить файл, но лучше переместить файл, переименовав его. С помощью этой команды вы переименовываете файл. В результате все политики отменяются, но вы все равно можете вернуться, если необходимо:

sudo mv /etc/ImageMagick-6/policy.xml /etc/ImageMagick-6/policy.xmlout

Чтобы вернуться к исходной ситуации, просто переименуйте обратно в исходное имя:

sudo mv /etc/ImageMagick-6/policy.xmlout /etc/ImageMagick-6/policy.xml

Устранение только ограничения на объединение в PDF

Для вашего конкретного случая gene_wood в комментарии указал на возможность выборочно ослабить политику для работы с файлами PDF, закомментировав одну строку:

<policy domain="coder" rights="none" pattern="PDF" />

Отредактируйте файл и поместите комментарии в этой строке, чтобы отключить это правило:

<!-- <policy domain="coder" rights="none" pattern="PDF" /> -->

Если вы не хотите отменять все политики безопасности, это путь.

Отказ от ответственности: вы были предупреждены, что удаление этого файла политики удаляет определенные политики безопасности.


Спасибо vanadium, я переименовал файл, как предложено, и это сработало.
Билл-Ланкастер

4
Я вошел в policy.xmlфайл и нашел строку, которая мешала мне объединять pngфайлы в pdfs, и закомментировал ее. Эта строка была, <policy domain="coder" rights="none" pattern="PDF" />если вы хотите оставить другие правила без изменений, но разрешите работать с pdfs.
gene_wood

1
@gene_wood, спасибо: я добавил в пост, потому что он предоставляет больше информации и возможностей для пользователей, которые хотят быть более осторожными в устранении ограничений.
ванадий

2
Хорошо, это работает в Ubuntu 18.04 с imagemagick 8: 6.9.7.4 + dfsg-16ubuntu6.4. Спасибо.
Geppettvs D'Constanzo

Второй метод работал для меня, но первый нет.
Выступ

35

Как пишет vanadium , вы должны изменить политику ImageMagick.

sudo vim /etc/ImageMagick-6/policy.xml

и заменить линию

<policy domain="coder" rights="none" pattern="PDF" />

с участием

<policy domain="coder" rights="read|write" pattern="PDF" />

Если вы хотите разрешить только запись, а не чтение, вы также можете стереть read|часть в строке выше.


Кстати, для тех, кто интересуется уязвимостью ImageMagick, вот две информационные ссылки:

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.