我正在使用此代码。所以它崩溃了。请让我知道我在哪里做错了。令cachesdirectorypath = nssearchpathfordirectoriesIndomains(.cachesdirectory,.userdomainmask,true)[0] 令filepath1 ="(cachesdirectorypath)/showpdf_(self.airportmainid).pdf" 令filepath2 ="(cachesdirectorypath)/imagepdf_(self.airportmainid).pdf 令FILEPATH3 = CACHESDIRECTORYPATH.APPERDEND("/combine_(self.airportmainid).pdf")
self.mergetwopdf(filepath1:filepath1,filepath2:filepath2,combinepath2:filepath3)
func mergeTwoPDF(filePath1: String, filePath2: String, combinePath: String) {
let pdfURL1 = NSURL(fileURLWithPath: filePath1)
let pdfURL2 = NSURL(fileURLWithPath: filePath2)
let pdfURL3 = NSURL(fileURLWithPath: combinePath)
let pdfDocumentRef1 = CGPDFDocument(pdfURL1 as CFURL)
let pdfDocumentRef2 = CGPDFDocument(pdfURL2 as CFURL)
let pdfDocumentRef3 = CGPDFDocument(pdfURL3 as CFURL)
let numberOfPages1 = pdfDocumentRef1!.numberOfPages
let numberOfPages2 = pdfDocumentRef2!.numberOfPages
let writeContext = CGContext(pdfDocumentRef3 as! CFURL, mediaBox: nil, nil)
var page: CGPDFPage?
var mediaBox: CGRect
for var i in 0..<numberOfPages1 {
page = pdfDocumentRef1!.page(at: i)
mediaBox = page!.getBoxRect(.mediaBox)
writeContext!.beginPage(mediaBox: &mediaBox)
writeContext!.drawPDFPage(page!)
writeContext!.endPage()
}
for var i in 0..<numberOfPages2 {
page = pdfDocumentRef2!.page(at: i)
mediaBox = page!.getBoxRect(.mediaBox)
writeContext!.beginPage(mediaBox: &mediaBox)
writeContext!.drawPDFPage(page!)
writeContext!.endPage()
}
writeContext!.closePDF();
}
pdfdocumentRef3为零,因为该文件不存在。
您应该使用:
UIGraphicsBeginPDFContextToFile(combinePath, CGRect.zero, nil)
let writeContext = UIGraphicsGetCurrentContext()