【问题标题】:Bottom to top text in column of Prawn table对虾表列中从下到上的文本
【发布时间】:2017-03-01 14:13:53
【问题描述】:

我试图在 Rails 4 中使用 prawn 创建一个 pdf 文件。我需要将垂直文本作为大宽度表格的标题行。因为如果我使用水平行标题,表格将不适合(表格的内容是 1 或 2 个字符的文本)。

我尝试对虾表使用rotate 选项。但这仅在我将宽度设置为足以在文本仍处于水平方向时容纳文本时才有效。但是,当我想要它垂直时,它会浪费空间。但是如果我减小列标题的宽度,文本就会中断。

这似乎是https://github.com/prawnpdf/prawn/issues/409 此处报告的错误。看来这个拉取请求解决了https://github.com/prawnpdf/prawn-table/pull/32 的问题。

但由于我使用的是prawn-rails,因此我很难将 gem 更改为使用尚未合并到 master 的 pull request。

我应该如何着手解决这个问题?

【问题讨论】:

  • 那么,没有人知道答案吗?

标签: ruby-on-rails pdf-generation prawn


【解决方案1】:

我终于在我的 rails 项目中使用 the PR of straydogstudio 解决了这个问题。这是它的逐步解决方案。

首先编辑Gemfile 以包含来自straydogstudio 的repo 的prawn-table gem。

gem 'prawn-table', :git => 'https://github.com/straydogstudio/prawn-table.git', ref: '759a27b6'

我使用ref: 选项来最小化整个存储库所需的下载量。

接下来,我使用了:rotate 选项而不使用:valign。这很重要,因为当使用:valign 时,文本会以某种方式变得混乱。

我在对虾表初始化块中使用的选项是

    cells.font_size = 6
    cells.padding = [1, 1]

    row(0).rotate = 90
    row(0).columns(3..52).rotate = 0 # every splitted column should be counted
    row(0).height = 40
    row(0).width = 15
    row(0).align = :center
    row(1).columns(0..-1).rotate = 90 # rotate the second row too!
    row(1).height = 30

结果令人满意。这是复杂设置的屏幕截图。

希望这对未来的访问者有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-31
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多