You are here: Home » Справка и подсказки » Ошибка «convert: attempt to perform an operation not allowed by the security policy `PDF’» (РЕШЕНО)

Ошибка «convert: attempt to perform an operation not allowed by the security policy `PDF’» (РЕШЕНО)

На системах Arch Linux и производных при конвертировании документов из PDF в PNG возникает ошибка:

convert: attempt to perform an operation not allowed by the security policy `PDF'

Пример этой ошибки в программе:

Converting PDF to PNGs
convert: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408.
convert: no images defined `/home/mial/test/for_testing_pages/page-transparent.png' @ error/convert.c/ConvertImageCommand/3300.
Flattening PNGs
Converting colors to achromatic
Traceback (most recent call last):
  File "/usr/bin/pdf-redact-tools", line 216, in <module>
    main()
  File "/usr/bin/pdf-redact-tools", line 206, in main
    if pdfrt.explode(achromatic):
  File "/usr/bin/pdf-redact-tools", line 101, in explode
    filename_template = os.path.join(self.pages_dirname, filenames[0].replace('-0.png', '-{}.png'))
IndexError: list index out of range

Ещё один пример:

convert -density 300 -depth 8 -quality 90 input.pdf output.png
convert: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408.
convert: no images defined `output.png' @ error/convert.c/ConvertImageCommand/3288.

Видимо политика безопасности Imagemagick не позволяет эту конвертацию из pdf в png. Конвертация других форматов вроде бы работает, только не из pdf. Такое происходит со стандартными настройками imagemagick.

Два варианта решения проблемы:

1.

В файле /etc/ImageMagick-7/policy.xml перед строкой

</policymap>

вставьте строку:

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

и всё заработает.

2.

Второй вариант аналогичный, также нужно открыть файл /etc/ImageMagick-7/policy.xml

Найдите там не закомментированную строку

<policy domain="coder" rights="none" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" />

И закомментируйте её, то есть поместите в перед ней <!--, а в конце -->.

После этого pdf конвертация должна снова работать.

Не нужно делать сразу два варианта — выбирите один из них. При первом варианте будет разрешена конвертация только из PDF, при втором варианте будет разрешена конвертация из всех форматов PS, PS2, PS3, EPS, PDF, XPS.

Такая политика в отношении PDF была добавлена из-за бага в Ghostscript, который теперь исправлен. То есть если вы используете текущую версию Ghostscript, то в этой политике уже нет нужды.

То есть не забудьте обновить ваш Ghostscript до последней версии!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *