使用透明背景将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的编译二进制文件。
任何帮助表示赞赏。
- 对于Ruby on Rails Heroku应用程序,如何将相关用户信息(不是全部)从一个生产数据库复制到另一个生产数据库
- 是否可以在Heroku Cedar上运行capybara-webkit(即forked webkit_server)?
- 在Heroku的Rails应用程序中包含两次jQuery
- Rails 4 session.id偶尔为零
- web.1:在heroku上缩放dyno时崩溃了ERROR
- Javascript没有在heroku上加载
- Heroku加入/包括不像sqlite开发环境那样工作
- 生产和开发之间的奇怪时间不一致
- Heroku rails 3.1 app – 在本地编译资产与在slug编译期间编译资产