Problemas con ImageMagick en Debian 10

La entrada de hoy trata sobre ImageMagick, un conjunto de utilidades para mostrar, manipular y convertir imágenes, capaz de leer y escribir más de 200 formatos, y que trabaja desde la línea de comandos (CLI).

Hoy estaba preparando unas imágenes escaneadas para realizar un papeleo que necesito despachar, pero he tenido problemas con esta herramienta al realizar la conversión a formato .PDF de mis documentos. A continuación describo el caso.

El problema:

La herramienta convert, incluida en el paquete ImageMagick, no convierte las imágenes de entrada a un fichero .PDF, mostrando el mensaje

convert-im6.q16: attempt to perform an operation not allowed by the security policy `PDF’ @ error/constitute.c/IsCoderAuthorized/408.

Los antecedentes:

Debido a problemas de seguridad reportados en Ghostscript (v.9.24 e inferiores) con fecha de agosto de 2018, ImageMagick tiene deshabilitada por defecto al conversión a varios formatos de ficheros, entre ellos el .PDF. Parece ser que los ficheros .PDF convertidos con las versiones indicadas de Ghostscript, se podían convertir a formatos maliciosos con los que que poder comprometer servidores web.

La solución:

La primera opción sería actualizar a versiones de Ghostscript mayores de la versión 9.24, si es posible. Si no lo es, se puede salvar el problema editando el fichero policy.xml que se encuentra en la carpeta /etc/ImageMagick-xx, donde la xx indica la versión de ImageMagick que tengas instalada.

En este fichero, buscamos las líneas siguientes (suelen estar al final del fichero)

<!-- 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" />

y las comentamos, de manera que queden según se muestra a continuación

<!-- 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" / -->

Y con esto ya podremos convertir a formato .PDF (y otros más) nuestros ficheros de imagen. Recuerda descomentar las líneas anteriores si no vas a utilizar más la conversión o si estás trabajando con un servidor, y tampoco te olvides de actualizar Ghostscript en cuanto te sea posible para evitar problemas futuros.

Salu2!!.

Deja un comentario