为什么ruby大虾从底部抽

why ruby prawn draw from bottom

我在 ruby 中使用 prawn 并绘制了示例文本,但为什么它从底部而不是从顶部呈现?

require 'prawn'
require 'prawn/measurement_extensions'

def self.generate
  pdf = Prawn::Document.new(page_size: 'A4', margin: [5.mm, 10.mm, 5.mm, 10.mm])
  pdf.draw_text "Hello world", at: [0, 0]
  pdf.dash 2, space: 3
  pdf.vertical_line 0, 100, :at => 0
  pdf.line_width = 0.5
  pdf.stroke
  pdf.render_file "#{__dir__}/test.pdf"
end

结果:

这是因为,如手册中所述 - https://github.com/prawnpdf/prawn/blob/c504ae4e683017d7afadece084734a9190230cd8/manual/basic_concepts/origin.rb#L5,PDF 文档的原点 (0,0) 位于页面左下方。因此,当您特别指定要在 [0,0] 绘制某些内容时,它将在其封装边界框的左下角绘制,在您的情况下就是页面。