使用透明背景将PDF转换为PNG

我们有一个Ruby on Rails应用程序,需要将PDF转换为具有透明背景的PNG。 我们正在使用rmagick 2.13.1。 在我们的开发机器上,以下代码正是我们想要的。

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" } ) 

我们保存image_file,所有都是桃子。 但是,当我们部署到Heroku上的评论服务器时,生成的图像具有白色背景。 事实certificate,Heroku的雪松堆正在使用imagemagick ImageMagick 6.5.7-8 2010-12-02,我们在开发机器上使用ImageMagick 6.7.5-7 2012-05-08。

我已经在网上搜索了可能适用于旧版本的旧post,试图找出如何生成透明的PNG。 它肯定得到了支持,但到目前为止,我还没有找到正确的设置组合。

为了validation它不是PDF生成的问题,我下载了一个在Heroku上生成的PDF,并使用上面的代码(略微修改为读取文件而不是生成它)成功转换为透明PNG。

我在各种组合中尝试过的一些事情是:

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

所以,问题是“这可能吗?”。 如果是这样,在写出之前我需要在图像上设置哪些设置?

我还在调查在Heroku上包含一个更新的Imagemagick的编译二进制文件。

任何帮助表示赞赏。