我想在UIImageView中显示存储在服务器中的PDF文件的缩略图。

我的应用程序面向iOS 9,因此PDFKit对我不起作用。

我也经历过各种解决方案,但没有一个对我有用。示例-https://stackoverflow.com/a/4768524/4152591

这里有谁遇到过类似的问题?

提前致谢。

最佳答案

private func thumbnailFromPdf(withUrl url: URL, pageNumber: Int = 1, width: CGFloat = 240) enter code here-> UIImage? {
    guard
        let pdf = CGPDFDocument(url as CFURL),
        let page = pdf.page(at: pageNumber)
    else { return nil }

    var pageRect = page.getBoxRect(.mediaBox)
    let pdfScale = width / pageRect.size.width
    pageRect.size = CGSize(width: pageRect.size.width * pdfScale, height: pageRect.size.height * pdfScale)
    pageRect.origin = .zero

    UIGraphicsBeginImageContext(pageRect.size)
    if let context = UIGraphicsGetCurrentContext() {
        context.setFillColor(UIColor.white.cgColor)
        context.fill(pageRect)
        context.saveGState()

        context.translateBy(x: 0.0, y: pageRect.size.height)
        context.scaleBy(x: 1.0, y: -1.0)
        context.concatenate(page.getDrawingTransform(.mediaBox, rect: pageRect, rotate: 0, preserveAspectRatio: true))

        context.drawPDFPage(page)
        context.restoreGState()
    }

    let image = UIGraphicsGetImageFromCurrentImageContext()
    defer { UIGraphicsEndImageContext() }
    return image
}

关于ios - 获取存储在远程位置iOS 9中的PDF文件的缩略图| swift ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51705049/

10-12 00:11
查看更多