从UICollectionView创建Pdf全部内容?

时间:2015-01-19 06:19:52

标签: ios iphone pdf pdf-generation uicollectionview

我需要从 UICollectionView完整内容创建 PDF 。我目前能够从UICollectionView Visible部分创建一个pdf。请帮助我,我想显示集合视图的全部内容。

1 个答案:

答案 0 :(得分:0)

这就是我解决它的方式。 (斯威夫特3.x)

    class PdfTools {

    func generatePdfFromCollectionView(_ collectionView: UICollectionView?, filename:String, success:(String) -> ()) {

        guard let collectionView = collectionView else {
            return
        }

        let pdfData = NSMutableData()

        let contentArea = CGRect(
            x: 0,
            y: 0,
            width: collectionView.contentSize.width,
            height: collectionView.contentSize.height
        )

        collectionView.frame = contentArea

        UIGraphicsBeginPDFContextToData(pdfData, contentArea, nil)

        UIGraphicsBeginPDFPage()
        collectionView.drawHierarchy(in: collectionView.bounds, afterScreenUpdates: true)
        UIGraphicsEndPDFContext()

        if let filepath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first {
            let fileFullPath = filepath + "/" + filename

            if pdfData.write(toFile: fileFullPath, atomically: true) {
                success(fileFullPath)
            }
        }
    }
}

这就是你使用它的方式。

    let pdfTool = PdfTool()   
    pdfTool.generatePdfFromCollectionView(self.collectionView, filename: "myFancy.pdf") { (filename) in 
// use your pdf here 
}