2017-03-05 5 views
0

私はこのコードを使用していますが、pdfDocumentRef3は来ません。そのクラッシュする。 私が間違っていることを教えてください。 せcachesDirectoryPath = NSSearchPathForDirectoriesInDomains(真.cachesDirectory、.userDomainMask)[0] せfilePath1 = "(cachesDirectoryPath)/ ShowPdf_(self.airportMainId).PDF" せfilePath2 =「(cachesDirectoryPath)/ ImagePdf_(self.airportMainId) .PDF せfilePath3 = cachesDirectoryPath.appending( "/ Combine_(self.airportMainId).PDF")スウィフト3.0で1つのpdfを別のpdfファイルにマージするには?

self.mergeTwoPDF(filePath1:filePath1、filePath2:filePath2、combinePath: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(); 
} 

答えて

0

pdfDocumentRef3ファイルが存在しないため、nilです。

使用する必要があります:

UIGraphicsBeginPDFContextToFile(combinePath, CGRect.zero, nil) 
let writeContext = UIGraphicsGetCurrentContext() 
関連する問題