使用 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,width: 842,height: 595)
           }
 }
 // ....
 }