我正在Prawn中创建PDF,并且尝试使用:absolute_top_left和:absolute_top_right,但它们都将其发送到左上角

问题描述

这是我到目前为止所拥有的

Prawn::Document.generate(location) do |pdf|    

  pdf.text location1,:absolute_top_left => true
  pdf.text location2,:absolute_top_left => true
  pdf.text location3,:absolute_top_left => true
    
  pdf.text location4,:absolute_top_right => true
  pdf.text location5,:absolute_top_right => true
  pdf.text location6,:absolute_top_right => true

end

由于某种原因,它会将所有内容都放到左侧,将带有:absolute_top_right内容放到顶部,但是从左而不是右移,这是我做错了吗?

解决方法

您可能需要使用边界框或:at关键字,:absolute_top_left不是我可以在任何地方找到的选项。

请参见https://prawnpdf.org/manual.pdf

中的'text / positioned_text.rb'
Prawn::Document.generate(location) do |pdf|    
  pdf.text location1
  pdf.move_down 10
    
  pdf.text_box location4,:at [300,100]
end
,

#absolute_top_left方法和其他类似命名的方法是Prawn边界框对象上的方法。它们返回绝对坐标而不是相对坐标。

例如,如果您启动一个空文档,则#top_left将返回(0,yyy),其中yyy是空白框的高度。 #absolute_top_left方法将返回(xxx,yyy + zzz),其中xxx是左边的空白,而zzz是底部的空白。