将PDF转换为具有透明背景的PNG

4

我们有一个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的评审服务器时,生成的图像具有白色背景。原来Heroku的cedar stack使用的是imagemagick ImageMagick 6.5.7-8 2010-12-02版本,而我们在开发机器上使用的是ImageMagick 6.7.5-7 2012-05-08版本。
我已经搜遍了网络上可能适用于旧版本的帖子,试图找出如何生成透明PNG的方法。它肯定是支持的,但迄今为止,我还没有能够弄清楚正确的设置组合。
为了验证不是PDF生成的问题,我下载了在Heroku上生成的PDF,并成功地将其转换为透明PNG使用以上代码(稍作修改,读取文件而不是生成文件)。
我尝试过的一些组合设置是: page.matte = true page.format = "PNG32" page.background_color = "none" page.transparent_color = "white" page.transparent("white")
所以问题是“这是可能的吗?”如果是,那么我需要在写出图像之前设置哪些设置?
我还在调查在Heroku上包含更多更新的Imagemagick的编译二进制文件。
感谢任何帮助。
1个回答

0

这不再是一个问题,因为Heroku在其各种堆栈上拥有ImageMagick版本6.7-6.9。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接