您可以尝试传递图像实际的宽度和高度,看看是否有帮助
大虾::图片
公共实例方法 image(file, options={}) 点击切换源
将文件名处的图像添加到当前页面。目前仅支持 JPG 和 PNG 文件。
注意:Prawn 在渲染带有 Alpha 通道的 PNG 时非常慢。对于那些不介意安装 RMagick 的人来说,解决方法是使用:
github.com/amberbit/prawn-fast-png
论据:
文件的文件路径或响应 # 的对象
选项:
: 在数组 [x,y] 中,图像左上角的位置。
:position (:left, :center, :right) 或 x 偏移之一
:vposition (:top, :center, :center) 或 y 偏移之一
:height图片的高度【图片的实际高度】
:width图片的宽度【图片的实际宽度】
:scale按比例缩放图像的尺寸
:fit按比例缩放图像的尺寸以适合 [width,height]
Prawn::Document.generate("image2.pdf", :page_layout => :landscape) do
pigs = "#{Prawn::BASEDIR}/data/images/pigs.jpg"
image pigs, :at => [50,450], :width => 450
dice = "#{Prawn::BASEDIR}/data/images/dice.png"
image dice, :at => [50, 450], :scale => 0.75
end
如果仅提供 :width / :height 之一,则图像将按比例缩放。当两者都提供时,图像将被拉伸以适应尺寸而不保持纵横比。
如果 :at 提供,图像将放置在当前页面中,但文本位置不会改变。
如果不是显式文件名,而是将具有读取方法的对象作为文件传递,则可以嵌入来自 IO 对象和类似它们的事物(包括 Tempfiles 和 open-uri 对象)的图像。
require "open-uri"
Prawn::Document.generate("remote_images.pdf") do
image open("http://prawn.majesticseacreature.com/media/prawn_logo.png")
end
此方法返回一个图像信息对象,如果需要,该对象可用于检查图像对象的尺寸。(另见:Prawn::Images::PNG,Prawn::Images::JPG)