Skip to content

Instantly share code, notes, and snippets.

@imrvshah
Created February 16, 2017 19:55
Show Gist options
  • Save imrvshah/03f01bde1634816d4180b921f1dc1681 to your computer and use it in GitHub Desktop.
Save imrvshah/03f01bde1634816d4180b921f1dc1681 to your computer and use it in GitHub Desktop.
Edit PDF: Create a PDF with only selected pages in Swift 3.0
func createNewPDF() {
let pdfURL = NSURL(fileURLWithPath: self.selectedFile.fileURL); // URL of the existing PDF
if let pdf:CGPDFDocument = CGPDFDocument(pdfURL as CFURL) { // Create a PDF Document
let _newURL = "\(documentFolderPath)/\(self.selectedFile.name)"; // New URL to save editable PDF
let _url = NSURL(fileURLWithPath: _newURL)
var _mediaBox:CGRect = CGRect(x: 0, y: 0, width: pageWidth, height: pageHeight); // mediabox which will set the height and width of page
let _writeContext = CGContext(_url, mediaBox: &_mediaBox, nil) // get the context
//Run a loop to the number of pages you want
for i in 0..<self.pages.count
{
if let _page = pdf.page(at: self.pages[i]) { // get the page number
var _pageRect:CGRect = page.getBoxRect(CGPDFBox.mediaBox) // get the page rect
_writeContext!.beginPage(mediaBox: &_pageRect); // begin new page with given page rect
_writeContext!.drawPDFPage(_page); // draw content in page
_writeContext!.endPage(); // end the current page
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment