Skip to content

Instantly share code, notes, and snippets.

@tempire
Created April 25, 2015 09:24
Show Gist options
  • Save tempire/0bd8cb78290aa9bc6adf to your computer and use it in GitHub Desktop.
Save tempire/0bd8cb78290aa9bc6adf to your computer and use it in GitHub Desktop.
swift draw image on pdf
func drawOnPDF(path: String) {
// Get existing Pdf reference
let pdf = CGPDFDocumentCreateWithURL(NSURL(fileURLWithPath: path))
// Get page count of pdf, so we can loop through pages and draw them accordingly
let pageCount = CGPDFDocumentGetNumberOfPages(pdf);
// Write to file
UIGraphicsBeginPDFContextToFile(path, CGRectZero, nil)
// Write to data
//var data = NSMutableData()
//UIGraphicsBeginPDFContextToData(data, CGRectZero, nil)
for index in 1...pageCount {
let page = CGPDFDocumentGetPage(pdf, index)
let pageFrame = CGPDFPageGetBoxRect(page, kCGPDFMediaBox)
UIGraphicsBeginPDFPageWithInfo(pageFrame, nil)
var ctx = UIGraphicsGetCurrentContext()
// Draw existing page
CGContextSaveGState(ctx);
CGContextScaleCTM(ctx, 1, -1);
CGContextTranslateCTM(ctx, 0, -pageFrame.size.height);
CGContextDrawPDFPage(ctx, page);
CGContextRestoreGState(ctx);
// Draw image on top of page
var image = UIImage(named: "signature3")
image?.drawInRect(CGRectMake(100, 100, 100, 100))
// Draw red box on top of page
//UIColor.redColor().set()
//UIRectFill(CGRectMake(20, 20, 100, 100));
}
UIGraphicsEndPDFContext()
}
@andreytorlopovold
Copy link

Thanks :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment