【问题标题】:Prawn: anchor middle of the text to the given point大虾:将文本的中间锚定到给定点
【发布时间】:2015-08-20 15:00:12
【问题描述】:

Prawn 有height_of_formatted 方法来确定格式化文本的高度,因此当需要将其中间垂直对齐到某个锚点时,可以计算其左上角坐标。

但是没有width_of_formatted方法。

我正在绘制图表,我需要将文本(点标签)居中于某个点(点本身)的正上方。所以我知道文本的中间有点的x坐标。

如何获取文本开头的 x 坐标(以便我可以将其提供给 draw_text 和其他渲染方法)?

【问题讨论】:

    标签: ruby-on-rails ruby prawn


    【解决方案1】:

    如果您使用bounding_box 而不是draw_text,您可以指定文本边界框的宽度。然后,如果您将文本居中对齐,您应该能够指定中间的确切 x 坐标。 (它是盒子的x位置加上宽度的一半)

    假设您在 x 坐标 72 处有一个点,并且您想添加标签“hello world!”所以单词的中心是相同的x坐标。你不知道“你好”这个词有多宽,但你确定它可以放在一个宽度为 500 的盒子里。

    72 - (500/2) = -178

    bounding_box([-178, 100], :width => 500) do
      text "hello world!", align => :center
    end
    

    【讨论】:

    • 如果您愿意,可以将 text_box 的宽度设置为与页面一样宽。文本将在其中居中,框的其余部分不会显示。我会在答案中举个例子
    猜你喜欢
    • 2011-03-10
    • 1970-01-01
    • 2023-01-10
    • 1970-01-01
    • 2017-12-06
    • 2023-02-22
    • 2019-04-27
    • 1970-01-01
    • 2019-12-18
    相关资源
    最近更新 更多