How to show and edit existing PDF files in ios application

前端 未结 3 1368
小鲜肉
小鲜肉 2020-12-09 06:46

I do not want to create new PDF file,that I had already done but want to show and edit existing pdf file in iOS through code..

Is this possible or not and if possibl

3条回答
  •  失恋的感觉
    2020-12-09 07:15

    I was able to do this by creating a copy of the original PDF and modifying it during the build process.

    PS: In my solution I needed to edit the document info of the new PDF, so I used the subject parameter to do this.

    In Swift 3

    func createPDF(on path: String?, from templateURL: URL?, with subject: String?) {
        guard let newPDFPath = path,
            let pdfURL = templateURL else { return }
    
        let options = [(kCGPDFContextSubject as String): subject ?? ""] as CFDictionary
    
        UIGraphicsBeginPDFContextToFile(newPDFPath, .zero, options as? [AnyHashable : Any])
    
        let templateDocument = CGPDFDocument(pdfURL as CFURL)
        let pageCount = templateDocument?.numberOfPages ?? 0
    
        for i in 1...pageCount {
    
            //get bounds of template page
            if let templatePage = templateDocument?.page(at: i) {
                let templatePageBounds = templatePage.getBoxRect(.cropBox)
    
                //create empty page with corresponding bounds in new document
                UIGraphicsBeginPDFPageWithInfo(templatePageBounds, nil)
                let context = UIGraphicsGetCurrentContext()
    
                //flip context due to different origins
                context?.translateBy(x: 0.0, y: templatePageBounds.height)
                context?.scaleBy(x: 1.0, y: -1.0)
    
                //copy content of template page on the corresponding page in new file
                context?.drawPDFPage(templatePage)
    
                //flip context back
                context?.translateBy(x: 0.0, y: templatePageBounds.height)
                context?.scaleBy(x: 1.0, y: -1.0)
    
    
                // -->>>>  Do your change here  <<<<--
                /* Here you can do any drawings */
    
            }
        }
        UIGraphicsEndPDFContext()
    }
    

提交回复
热议问题