Imagemagick 보안 정책은 pdf에서 png 로의 변환을 허용하지 않는 것 같습니다. 다른 확장자를 변환하는 것은 pdf가 아닌 작동하는 것 같습니다. 설치 한 이후로 imagemagick 설정을 변경하지 않았습니다 … OS가 중요한 경우 Arch Linux를 사용하고 있습니다.
user@machine $ 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.
답변
글쎄, 나는 덧붙였다
<policy domain="coder" rights="read | write" pattern="PDF" />
직전 </policymap>
에 /etc/ImageMagick-7/policy.xml
하고는 있지만 확인하십시오의 보안 문제에 대해 다시 작동합니다.
답변
일부 의견에서 지적했듯이에서 ImageMagick의 정책을 편집해야합니다 /etc/ImageMagick-7/policy.xml
. 보다 구체적으로, 작성 시점 (2019 년 1 월 5 일)의 ArchLinux에서 다음 행은 주석 처리되지 않습니다.
<policy domain="coder" rights="none" pattern="{PS,PS2,PS3,EPS,PDF,XPS}" />
그냥 사이에 그것을 포장 <!--
하고 -->
그것을 언급하고, PDF 변환이 다시 작동합니다.
답변
내 아치 리눅스 시스템 에서이 줄은 이미 주석 처리되지 않았습니다. “없음”을 “읽기 | 쓰기”로 바꿔야 작동했습니다.
답변
이는 Ghostscript 9.24 ( source ) 에서 해결 된 보안 취약점으로 인한 것 입니다. 최신 버전 인 경우이 해결 방법이 더 이상 필요하지 않습니다. Ghostscript 6이 설치된 Ubuntu 19.10에서 이는 다음을 의미합니다.
-
Ghostscript ≥9.24인지 확인하십시오.
gs --version
-
그렇다면 다음 섹션 전체를 제거하십시오
/etc/ImageMagick-6/policy.xml
.<!-- 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" />
답변
아치 리눅스에서 나를 위해 언급해야했습니다.
<policy domain="delegate" rights="none" pattern="gs" />
답변
우분투 19.10에서는 /etc/ImageMagick-6/policy.xml 에서이 작업을 수행했습니다.
주석 해제
<policy domain="module" rights="read | write" pattern="{PS,PDF,XPS}" />
이 의견을
<!-- <policy domain="coder" rights="none" pattern="PDF" /> -->
그 후,이 명령은 오류없이 작동합니다
convert -thumbnail x300 -background white -alpha remove sample.pdf sample.png
답변
pdf 파일의 축소판을 만들지 못하는 nextcloud 에서이 문제가 발생했습니다.
그러나 제안 된 단계 중 어느 것도 나를 위해 문제를 해결하지 못했습니다.
결국 나는 그 이유를 찾았습니다. 허용 된 답변이 효과가 있었지만 policy.xml 파일을 편집 한 후 php-fpm을 다시 시작해야했습니다.
sudo systemctl restart php7.2-fpm.service