Como salvar um arquivo pdf com suas anotações em Objective-C

Esta é a maneira como salvei um pdf com todos os desenhos ou anotações feitas em uma camada UIView. Eu mostro essa camada UIView no topo da visualização do leitor de pdf, de forma que permite ao usuário desenhar coisas nela. Este código é sobre como salvar ambas as camadas (pdf e anotações) em um novo arquivo pdf.

NSError *error;
//Load original pdf data:
NSData *pdfData = [NSData dataWithContentsOfFile:OriginalPdfPath options:NSDataReadingUncached error:&error];

if (error)
{
NSLog(@"%@", [error localizedDescription]);
return;
}
else
NSLog(@"Data has loaded successfully.");

//If fails to create the new file, returns
if (![[NSFileManager defaultManager] createFileAtPath:NewPdfPath contents:pdfData attributes:nil])
{
return;
}

NSURL
*url = [NSURL fileURLWithPath:OriginalPdfPath];
CGPDFDocumentRef document = CGPDFDocumentCreateWithURL ((__bridge_retained CFURLRef) url);
size_t count = CGPDFDocumentGetNumberOfPages(document);

if (count == 0)
{
NSLog(@"PDF needs at least one page");
return;
}

CGRect paperSize = CGRectMake(0, 0, 1190, 842);

UIGraphicsBeginPDFContextToFile(NewPdfPath , paperSize, nil);
// CGPDFPageRef page = CGPDFDocumentGetPage(document, 1);
UIGraphicsBeginPDFPageWithInfo(paperSize, nil);
CGContextRef currentContext = UIGraphicsGetCurrentContext();

// flip context so page is right way (landscape app)
CGContextScaleCTM(currentContext, 1, -1);
// Rotate the coordinate system (rotation = M_PI or -M_PI for landscape)
CGContextRotateCTM(currentContext, rotation/ 2);

CGPDFPageRef page = CGPDFDocumentGetPage (document, 1); // grab page 1 of the PDF
CGContextDrawPDFPage (currentContext, page); // draw page 1 into graphics context

//flip context so annotations are right way
CGContextScaleCTM(currentContext, 1, -1);
CGContextRotateCTM(currentContext, rotation / 2);
//Render the layer of the annotations view in the context
[drawingView.layer renderInContext:currentContext];
UIGraphicsEndPDFContext();
CGPDFDocumentRelease (document);