Swift PDFの特定範囲をImageに切り出す

func renderPDFPage(pdfName: String, pageNumber: Int, croppedCGRect: CGRect) -> UIImage? {
    guard let pdfURL = Bundle.main.url(forResource: pdfName, withExtension: "pdf"),
          let document = PDFDocument(url: pdfURL),
          let page = document.page(at: pageNumber - 1) else { return nil }

    let pageRect = page.bounds(for: .mediaBox)
    let renderer = UIGraphicsImageRenderer(size: pageRect.size)
    let image = renderer.image { context in
        UIColor.white.set()
        context.fill(pageRect)
        context.cgContext.translateBy(x: 0.0, y: pageRect.size.height)
        context.cgContext.scaleBy(x: 1, y: -1.0)
        context.cgContext.drawPDFPage(page.pageRef!)
    }
    return image.cropped(to: croppedCGRect)
}

SwiftSwift,SwiftUI

Posted by shi-n