swift - 使用 PDFKit:如何进行分页符?
问题描述
寻找方向
我正在使用 PDFKit。一切都很好,但是无法找到有关如何停止在某个 y 位置绘制文本并开始下一页的方法(文档 / WWDC / 其他地方)。任何保存的参考资料或代码片段都会有很大帮助。
解决方案
我不知道,这是否是实现您的用例的最佳方式,但它对我有用。在 PDF_Context 中添加新行时,我会重新计算一个变量,以持续跟踪我的 PDF_Page 的当前内容高度。当它超过某个值时,我创建一个新页面,将内容高度设置为零并继续填充,...
你可能想在这里找到一些好的答案,练习 -> RayWenderlich。
// my initial value
private var myCurrentPageContentHeight: CGFloat = 20
// in your PDF fill procedures add something like
myCurrentPageContentHeight += 40
// I also have a struct the encapsulates
// PageSize with padding, ...
enum PDF_PageSize {
case din_A4_Portrait
case din_A4_Landscape
// -------------------------------
// getPDF_TotalRect
// -------------------------------
func getPDF_TotalRect() -> CGRect {
switch self {
case .din_A4_Portrait : return CGRect(x: 0, y: 0, width: 595, height: 842)
case .din_A4_Landscape : return CGRect(x: 0, y: 0, width: 842, height: 595)
}
}
// ....
}
推荐阅读
- c - C 中的一个类型可以有多个对象表示吗?
- python - Pytorch 中的切片给出了错误的答案
- node.js - async/await 不适用于 mongoose 实例方法
- c# - 在新的 .NetCore API 中使用现有的 AspNet.Identity (MVC)
- sql - SQL查询如何在Oracle/Hive中获取一周/年的最后一个工作日?
- kubernetes - Google 调试:如何调试可执行 jar 中的库 - 错误:在可执行文件中找不到文件
- postgresql - 我们如何在 PostgreSQL 中转换给定的日期时间格式?
- javascript - 如何获取通过 React JSX 定义的 html 元素?
- java - 一次登录不能使用多个用户
- java - 迭代集合时 Java 流/forEach 中的定期操作