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
}