从Swift中的UISCrollView创建一个PDF文件



我想从uiscrollview的内容创建一个PDF文件。

func createPdfFromView(aView: UIView, saveToDocumentsWithFileName fileName: String) {
    let pdfData = NSMutableData()
    let height = 1754.0
    let width = 1240.0
    UIGraphicsBeginPDFContextToData(pdfData, CGRect(x:-30, y:15,width:width,height:height) , nil)
    UIGraphicsBeginPDFPage()
    guard let pdfContext = UIGraphicsGetCurrentContext() else { return }
    aView.layer.render(in: pdfContext)
    UIGraphicsEndPDFContext()
    if let documentDirectories = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first {
        let documentsFileName = documentDirectories + "/" + fileName
        debugPrint(documentsFileName)
        pdfData.write(toFile: documentsFileName, atomically: true)
    }
}

我希望该代码会在scrollview中的内容大小上生成一个针对PDF。

该代码当前仅生成静态PDF。如果ScrollView中的内容大于PDF页面,则切断内容。

func createPdfFromView()
{
    // Set frame as per content of view
    self.spreadsheetView.frame = CGRect(x: 0, y: 0, width: self.spreadsheetView.contentSize.width, height: self.spreadsheetView.contentSize.height)
    let pdfPageBounds: CGRect = self.spreadsheetView.frame
    let pdfData: NSMutableData = NSMutableData()
    // Rendering spreadsheetView
    UIGraphicsBeginPDFContextToData(pdfData, pdfPageBounds, nil)
    UIGraphicsBeginPDFPageWithInfo(pdfPageBounds, nil)
    self.spreadsheetView.layer.render(in: UIGraphicsGetCurrentContext()!)
    UIGraphicsEndPDFContext()
    let documentDirectories = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first
    let documentsFileName = documentDirectories! + "/" + "pdfName.pdf"
    pdfData.write(toFile: documentsFileName, atomically: true)
    print(documentsFileName)
    // Reset spreadsheetView
    self.spreadsheetView.frame = CGRect(x: 0, y: 64, width: self.view.frame.width, height: self.view.frame.height)
    self.spreadsheetView.layoutSubviews()
    self.spreadsheetView.layoutIfNeeded()
    self.spreadsheetView.reloadData()}

希望它可以帮助您从电子表格创建PDF。

参考。GitHub代码链接:电子表格视图

我可以使用此Cocoapods框架实现此目标。就我而言,我想从电子表格中制作PDF,以便该框架可以帮助我添加具有不同列大小和更多功能的表格,这些功能从数据中添加了。

https://cocoapods.org/pods/simplepdf

相关内容

最新更新