Convertendo PDF para PNG com fundo transparente

Temos um aplicativo Ruby on Rails que precisa converter um PDF em um PNG com um plano de fundo transparente. Estamos usando o rmagick 2.13.1. Em nossas máquinas de desenvolvimento, o código a seguir funciona exatamente como 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" } )

Nós, então, salvamos o arquivo_de_imagem e tudo é pêssego. Quando implantamos em um servidor de revisão no Heroku, a imagem gerada tem um fundo branco. Acontece que a pilha de cedros da Heroku está usando imagemagick ImageMagick 6.5.7-8 2010-12-02 onde estamos usando o ImageMagick 6.7.5-7 2012-05-08 em nossas máquinas de desenvolvimento.

Eu pesquisei na rede por postagens mais antigas que podem se aplicar à versão antiga para tentar descobrir como gerar os PNGs transparentes. É certamente suportado, mas até agora não consegui descobrir a combinação certa de configurações.

Para verificar se não era a geração de PDF que era o problema, eu baixei um PDF gerado no Heroku e converti com sucesso usando o código acima (ligeiramente modificado para ler o arquivo em vez de gerá-lo) para um PNG transparente.

Algumas das coisas que eu tentei em várias combinações são:

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

Então, a questão é "isso é possível?" Em caso afirmativo, quais configurações eu preciso definir na imagem antes de escrevê-la?

Eu também estou investigando incluindo um binário compilado de um Imagemagick mais atualizado no Heroku.

Qualquer ajuda é apreciada.

questionAnswers(0)

yourAnswerToTheQuestion