Problemas com a conversão em lote de .png para .pdf usando convert


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

dá a mensagem de erro:

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

Qualquer ajuda seria apreciada!

Respostas:


157

converté uma poderosa ferramenta de linha de comando para converter gráficos. Alegadamente, isso fornece riscos de segurança, especialmente onde é usado em conjunto com um servidor da web. Nas versões recentes do Ubuntu, um arquivo de políticas é implementado, onde certos usos convertsão restritos. Aparentemente, esse arquivo, por padrão, proíbe "converter" vários arquivos gráficos em um arquivo PDF.

O arquivo de política é /etc/ImageMagick-6/policy.xml. Você pode editar esse arquivo como usuário root para alterar as políticas.

Eliminando todas as restrições de uso

Para usuários de desktop que não executam um servidor da web, a simples eliminação dessas restrições pode ser suficiente. Para esse objetivo, é possível excluir o arquivo, mas é melhor prática "mover o arquivo para fora" renomeando-o. Com este comando, você está renomeando o arquivo. Como resultado, todas as políticas são levantadas, mas você ainda pode reverter, se necessário:

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

Para reverter para a situação original, basta renomear novamente para o nome original:

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

Eliminando apenas a restrição para combinar em PDF

Para o seu caso específico, o gene_wood em um comentário apontou a possibilidade de relaxar seletivamente a política para trabalhar com arquivos PDF comentando uma linha:

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

Edite o arquivo e coloque marcas de comentário em torno desta linha para desativar esta regra:

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

Se você não deseja eliminar todas as políticas de segurança, este é o caminho a seguir.

Isenção de responsabilidade: você foi avisado de que a remoção deste arquivo de políticas remove certas políticas de segurança.


Graças vanádio, renomeei o arquivo como sugerido e funcionou um tratamento.
bill-lancaster

4
Entrei no policy.xmlarquivo e encontrei a linha que estava me impedindo de combinar pngarquivos em pdfs e comentei. Essa linha era <policy domain="coder" rights="none" pattern="PDF" />se você gostaria de deixar as outras regras intactas, mas permitir trabalhar com pdfs.
gene_wood

1
@gene_wood, obrigado: eu adicionei ao post porque fornece mais informações e opções para os usuários que desejam ter mais cuidado na eliminação de restrições.
vanadium

2
Ok, isso funciona no Ubuntu 18.04 com o imagemagick 8: 6.9.7.4 + dfsg-16ubuntu6.4. Obrigado.
Geppettvs D'Constanzo

O segundo método funcionou para mim, mas o primeiro não.
The Ledge

35

Conforme o vanádio publicado , você precisa alterar a política do ImageMagick.

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

e substitua a linha

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

com

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

Se você deseja permitir apenas a gravação, e não a leitura, também pode apagar a read|parte na linha acima.


BTW, para aqueles que estão interessados ​​na vulnerabilidade do ImageMagick, aqui estão dois links informativos:

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.