Convertir PDF a PNG con fondo transparente

Tenemos una aplicación Ruby on Rails que necesita convertir un PDF en un PNG con un fondo transparente. Estamos utilizando rmagick 2.13.1. En nuestras máquinas de desarrollo, el siguiente código funciona exactamente como lo queremos.

pages = Magick::Image.from_blob(book.to_pdf.render){ self.density = 300 }
page = pages[0]

image_file = Tempfile.new(['preview_image', '.png'])
image_file.binmode
image_file.write( page.to_blob { |opt| opt.format = "PNG" } )

Luego guardamos el archivo de imagen y todo está en blanco. Sin embargo, cuando implementamos en un servidor de revisión en Heroku, la imagen generada tiene un fondo blanco. Resulta que la pila de cedros de Heroku está usando imagemagick ImageMagick 6.5.7-8 2010-12-02 donde estamos usando ImageMagick 6.7.5-7 2012-05-08 en nuestras máquinas de desarrollo.

He rastreado la red en busca de publicaciones anteriores que podrían aplicarse a la versión anterior para intentar averiguar cómo generar los PNG transparentes. Seguramente es compatible, pero hasta ahora no he podido averiguar la combinación correcta de configuraciones.

Para verificar que el problema no era la generación de PDF, descargué un PDF generado en Heroku y lo convertí con éxito usando el código anterior (ligeramente modificado para leer el archivo en lugar de generarlo) a un PNG transparente.

Algunas de las cosas que he probado en varias combinaciones son:

page.matte = truepage.format = "PNG32"page.background_color = "none"page.transparent_color = "white"page.transparent("white")

Entonces, la pregunta es "¿es esto posible?". Si es así, ¿qué ajustes debo configurar en la imagen antes de escribirla?

También estoy investigando incluyendo un binario compilado de un Imagemagick más actualizado en Heroku.

Cualquier ayuda es apreciada.

Respuestas a la pregunta(0)

Su respuesta a la pregunta