Created
February 16, 2017 19:55
-
-
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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