大虾:格式化边界框

问题描述 投票:0回答:2

我是编程和Ruby新手,尝试用Prawn生成PDF。我正在遵循 Prawn 手册,但在将文本放入边界框中时遇到问题。这是我的代码,主要来自 Prawn 手册......:

  pdf.bounding_box([200, pdf.cursor - 100], :width => 200, :height => 100) do
      pdf.text "Just your regular bounding box"
      pdf.transparent(0.5) { pdf.stroke_bounds }
  end

如果我删除这一行:

pdf.transparent(0.5) { stroke_bounds }
, 该代码可以运行,但我看不到文本框。我需要改变什么?

ruby-on-rails prawn
2个回答
0
投票

我不确定我是否完全理解您的问题。当你说

代码可以运行,但我看不到文本框

你的意思是你看不到盒子的边框,但你仍然可以看到文字?或者你也看不到文字? 我希望是前者,因为它是导致绘制边框的

stroke_bounds

所以回答你的“我需要改变什么”,这取决于你想要完成什么:

  • 如果您需要文本但不需要框边框,您可以删除 `pdf.transparent(0.5) { pdf.stroke_bounds },它唯一的工作是在周围绘制半透明(即灰色)边框边界框

  • 如果你想要边框,把那条线留在

  • 如果你想要边框,但又想让方框的高度符合文字的高度,那么去掉第一行的

    :height => 100
    。然后 bounding_box 高度将调整以适合文本。


0
投票

您可以删除透明格式并简单地说:

  pdf.stroke_bounds

您的原始代码如下所示:

  pdf.bounding_box([200, pdf.cursor - 100], :width => 200, :height => 100) do
      pdf.text "Just your regular bounding box"
      pdf.stroke_bounds
  end
© www.soinside.com 2019 - 2024. All rights reserved.