gpt4 book ai didi

ios - 将 PDF 转换为 UIImage

转载 作者:IT王子 更新时间:2023-10-29 05:40:36 25 4
gpt4 key购买 nike

func drawOnPDF(path: String)
{
// Get existing Pdf reference
let pdf = CGPDFDocumentCreateWithURL(NSURL(fileURLWithPath: path))

// Get page count of pdf, so we can loop through pages and draw them accordingly
let pageCount = CGPDFDocumentGetNumberOfPages(pdf);

// Write to file
UIGraphicsBeginPDFContextToFile(path, CGRectZero, nil)

// Write to data
// var data = NSMutableData()
// UIGraphicsBeginPDFContextToData(data, CGRectZero, nil)

for index in 1...pageCount {
let page = CGPDFDocumentGetPage(pdf, index)
let pageFrame = CGPDFPageGetBoxRect(page, kCGPDFMediaBox)

UIGraphicsBeginPDFPageWithInfo(pageFrame, nil)

var ctx = UIGraphicsGetCurrentContext()

// Draw existing page
CGContextSaveGState(ctx);
CGContextScaleCTM(ctx, 1, -1);
CGContextTranslateCTM(ctx, 0, -pageFrame.size.height);
CGContextDrawPDFPage(ctx, page);
CGContextRestoreGState(ctx);

// Draw image on top of page
var image = UIImage(named: "signature3")
image?.drawInRect(CGRectMake(100, 100, 100, 100))
// Draw red box on top of page
//UIColor.redColor().set()
//UIRectFill(CGRectMake(20, 20, 100, 100));
}

UIGraphicsEndPDFContext()
}

我的问题是 PDF 转换为图像,但如何在 View 中打开图像然后向左、向右、向上和向下滑动怎么可能

最佳答案

swift 3:

func convertPDFPageToImage(page:Int) {

let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let filePath = documentsURL.appendingPathComponent("pathLocation").path

do {

let pdfdata = try NSData(contentsOfFile: filePath, options: NSData.ReadingOptions.init(rawValue: 0))

let pdfData = pdfdata as CFData
let provider:CGDataProvider = CGDataProvider(data: pdfData)!
let pdfDoc:CGPDFDocument = CGPDFDocument(provider)!
pageCount = pdfDoc.numberOfPages;
let pdfPage:CGPDFPage = pdfDoc.page(at: page)!
var pageRect:CGRect = pdfPage.getBoxRect(.mediaBox)
pageRect.size = CGSize(width:pageRect.size.width, height:pageRect.size.height)

print("\(pageRect.width) by \(pageRect.height)")

UIGraphicsBeginImageContext(pageRect.size)
let context:CGContext = UIGraphicsGetCurrentContext()!
context.saveGState()
context.translateBy(x: 0.0, y: pageRect.size.height)
context.scaleBy(x: 1.0, y: -1.0)
context.concatenate(pdfPage.getDrawingTransform(.mediaBox, rect: pageRect, rotate: 0, preserveAspectRatio: true))
context.drawPDFPage(pdfPage)
context.restoreGState()
let pdfImage:UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()

self.imageView.image = pdfImage

}
catch {

}

}

关于ios - 将 PDF 转换为 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32604857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com