【问题标题】:Create Pdf from UICollectionView full content?从 UICollectionView 完整内容创建 Pdf?
【发布时间】:2015-03-17 02:56:27
【问题描述】:

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

【问题讨论】:

  • 面临同样的问题

标签: ios iphone pdf pdf-generation uicollectionview


【解决方案1】:

我就是这样解决的。 (斯威夫特 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 
}

【讨论】:

  • 如果我有包含大量项目的集合视图,则此解决方案不起作用。就我而言,我有 30 多个项目,每个 collectionView 项目都有一个图像视图。在这种情况下会创建空白页 PDF。
  • 不幸的是,多页内容视图不起作用。它只会将第一页调整为非常长的高度,例如 375x16,000
猜你喜欢
  • 2017-07-27
  • 2015-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-24
  • 2012-06-10
  • 2017-03-13
  • 1970-01-01
相关资源
最近更新 更多