prawn - 如何使用 Prawn 中的 column_boxes 中断新页面插入
问题描述
我在我的 Prawn 类中重写#start_new_page
了一些逻辑,在页面创建期间将边框添加到页面中作为最后一件事。我现在正在添加一些使用#column_boxes
. 不幸的是,溢出页面似乎没有触发#start_new_page
。
我添加了这个:
current_page_count = page_count
# write some text page(s)...
new_page_count = page_count
(new_page_count - current_page_count).times do |additional_index|
# pages are 1-based, but #times yields a zero-based value
next_page = current_page_count + additional_index + 1
go_to_page next_page
add_border
end
不幸的是,边框现在放置在内容的顶部,而不是在其后面。有没有办法我可以:
#column_boxes
在将内容呈现到新页面之前添加我的边框- 或者
- 合并两个页面
我可以创建一个只有边框的新页面,然后合并在#column_boxes
它上面创建的内容。
我意识到我可以在 Ghostscript 中进行合并,但必须在 Prawn 中完成,因为我根据用户数据创建了未知数量的内容。
解决方案
事实证明,代码被破坏的原因是我Prawn::View
同时更改为包含。我的#start_new_page
覆盖因此停止工作。我切换回继承,它现在可以工作了。
推荐阅读
- php - 服务器端 BrainTree 信用卡分词器
- regex - Hive 查询仅替换第一次出现的子字符串
- git - Git 提交历史丢失并且不确定如何恢复
- aspnetboilerplate - aspnetboilerplate 全局用户表(所有租户通用)
- rpm - 如何从源代码构建 Kazoo RPM 文件?
- android - 如何在 Calib3d.findChessboardCorners 方法 Android 中修复/处理 OpenCV 崩溃
- amazon-web-services - 是否可以将 terraform 转换为 AWS CDK?
- c# - C# 获取 System.IO.FileNotFound 异常
- go - 使用 KDF 在 Go 中使用 bcrypt 获取特定的输出密钥长度
- c# - SoftEther 身份验证“拒绝访问”