【问题标题】:How do I combine a number of images into a single PDF using ruby?如何使用 ruby​​ 将多个图像组合成一个 PDF?
【发布时间】:2014-01-05 08:35:45
【问题描述】:

我有一组图像。如何将它们组合成 PDF,每页一张图片?

我查看了 RGhost 和 RMagic,答案可能就在某处,但我现在还没有找到答案。

【问题讨论】:

  • 看看prawn gem

标签: ruby pdf pdf-generation rmagick


【解决方案1】:

你可以使用 RMagick 的ImageList#write:

如果文件名指示的图像格式支持每个文件多个图像(动画图像),则 write 将图像列表中的所有图像写入单个文件。

例子:

require 'rmagick'

image_list = Magick::ImageList.new("image1.png", "image2.png", "image3.png")
image_list.write("images.pdf")

【讨论】:

  • 看起来不错,斯特凡。只是一个快速的问题。如果我有一组图像,我该如何传递?该数组转换为 Magick::ImageList.new(['image1.png', 'image2.png']) 不起作用。如果我转换为字符串,我会得到 Magick::ImageList.new("'image1.png', 'image2.png'") 这也不起作用。我可能在这里错过了一个明显的技巧。
  • 它对我不起作用,因为我使用Magick::ImageList.new(["image1.png", "image2.png"])
  • @MinhDanh 你必须传递文件名,而不是数组,即Magick::ImageList.new('image1.png', 'image2.png')
  • 哦,我以为你在提到Magick::ImageList.new(*array)的数组
  • @MinhDanh 这也行。 * 将数组转换为参数列表。在你的情况下:Magick::ImageList.new(*['image1.png', 'image2.png'])(注意数组前面的*
【解决方案2】:

查看prawn gem。简单示例见下:

require 'prawn'

Prawn::Document.generate('hello.pdf') do |pdf|
   pdf.text("Hello Prawn!")
   pdf.image "#{Prawn::DATADIR}/images/fractal.jpg", :at => [200, 100]
end

【讨论】:

  • 这颗宝石太棒了!谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-25
  • 1970-01-01
  • 2017-01-10
相关资源
最近更新 更多