Erreur lors de la conversion de jpg en pdf

57

Chaque fois que je veux convertir un jpgfichier en pdfutilisant cette commande

convert *.jpg pictures.pdf

J'ai ce message d'erreur:

convert: not authorized `pictures.pdf' @ error/constitute.c/WriteImage/1028.
Adon Naaman
la source
1
convert * .jpg pictures.pdf écrasera tous les fichiers pdf en un seul fichier pictures.pdf?
Vijay
Cette solution de StackOverflow a fonctionné pour moi: stackoverflow.com/questions/42928765/…
Mike

Réponses:

82

Ce problème provient d'une mise à jour de sécurité: https://launchpad.net/ubuntu/+source/imagemagick/8:6.8.9.9-7ubuntu5.13

Quelqu'un l'a signalé comme étant un bug: https://bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1796563

En tant que solution temporaire, j'ai modifié /etc/ImageMagick-6/policy.xmlet changé les droits de PDF à partir nonede read|writelà. Pas sûr des implications, mais au moins, ça me permet de faire avancer les choses.

YoungFrog
la source
1
Je me suis renseigné à nouveau et je suis presque certain que le correctif de sécurité est lié à kb.cert.org/vuls/id/332928 (qui documente diverses manières de contourner -dSAFER dans ghostscript).
YoungFrog
3
Cela fonctionne bien comme annoncé. J'ai simplement commenté (effectivement supprimé) la ligne pdf. Il serait bon de savoir quels seraient les effets secondaires! La stratégie dans le fichier de configuration indique qu'il s'agit de "désactiver les types de format ghostscript".
Marten Koetsier
1
J'ai hésité à modifier les paramètres de sécurité. Comme alternative à imagemagick, j'ai utilisé "pdftoppm -jpeg input.pdf output.jpg" (du paquet nommé poppler-utils). Cette alternative a été publiée dans bugs.launchpad.net/ubuntu/+source/imagemagick/+bug/1796563
Vahid Pazirandeh le
Changer la politique de format de fichier de destination respectivement <policy domain = "coder" rights = "read | write" pattern = "PDF" /> .En général, ils seront à la fin .Thanks
yunus
4

Correction de ceci sur mon Ubuntu 16.04.6 LTS en suivant la réponse acceptée .

Créé simple sed one-liner pour résoudre ce problème plus rapidement:

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

et de manière programmatique.

Nobert
la source