使用 PDFKit:如何进行分页?

Working with PDFKit: How to make page breaks?

寻找方向

我正在使用 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)
           }
 }
 // ....
 }