Swift 5表格视图转换为PDF

Swift 5表格视图转换为PDF,swift,tableview,pdf-generation,swift5,nsmutabledata,Swift,Tableview,Pdf Generation,Swift5,Nsmutabledata,我有一个具有动态行高和多行的tableView。我正在使用下面的代码将其转换为PDF // Export pdf from UITableView and save pdf in drectory and return pdf file path func exportAsPdfFromTable() -> String { self.showsVerticalScrollIndicator = true let originalBounds = self.bounds

我有一个具有动态行高和多行的tableView。我正在使用下面的代码将其转换为PDF


// Export pdf from UITableView and save pdf in drectory and return pdf file path
func exportAsPdfFromTable() -> String {

    self.showsVerticalScrollIndicator = true
    let originalBounds = self.bounds
    self.bounds = CGRect(x:originalBounds.origin.x, y: originalBounds.origin.y, width: self.contentSize.width, height: self.contentSize.height)
    let pdfPageFrame = CGRect(x: 0, y: 0, width: self.bounds.size.width, height: self.contentSize.height)

    let pdfData = NSMutableData()
    UIGraphicsBeginPDFContextToData(pdfData, pdfPageFrame, nil)
    UIGraphicsBeginPDFPageWithInfo(pdfPageFrame, nil)
    guard let pdfContext = UIGraphicsGetCurrentContext() else { return "" }
    self.layer.render(in: pdfContext)
    UIGraphicsEndPDFContext()
    self.bounds = .null
    // Save pdf data
    return self.saveTablePdf(data: pdfData)

}

// Save pdf file in document directory
func saveTablePdf(data: NSMutableData) -> String {

    let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
    let docDirectoryPath = paths[0]
    let pdfPath = docDirectoryPath.appendingPathComponent("myPDF.pdf")
    if data.write(to: pdfPath, atomically: true) {
        return pdfPath.path
    } else {
        return ""
    }
}
    
}
那是我的桌面视图


但是,导出的PDF仅显示tableView的可见部分:


如何在PDF中显示完整的tableView?

“然而,导出的PDF仅显示tableView的可见部分”这就是工作原理。如有必要,构建视图以手动转换为图像。