Save Unlock PDFDocumentsRef to Local Directory

I am working on pdf in my new iPhone app. I check that the PDF is locked (password protected) or not

BOOL bIsUnlock = CGPDFDocumentIsUnlocked(PDFDocument);

If the PDF file is locked, then

BOOL success = CGPDFDocumentUnlockWithPassword ( PDFDocument, [password UTF8String]);

Here I manage to unlock documents. Now I want to save the unlock document in the application directory.

I searched and found a way

CGPDFPageRef _PDFPage =CGPDFDocumentGetPage(PDFDocument, 1);

CGRect pageRect = CGPDFPageGetBoxRect(_PDFPage, kCGPDFMediaBox);

//create empty pdf file;
UIGraphicsBeginPDFContextToFile(newFilePath, pageRect, nil);
size_t count = CGPDFDocumentGetNumberOfPages(PDFDocument);

for (size_t pageNumber = 1; pageNumber <= count; pageNumber++)

{

    //get bounds of template page

    CGPDFPageRef templatePage = CGPDFDocumentGetPage(PDFDocument, pageNumber);

    CGRect templatePageBounds = CGPDFPageGetBoxRect(templatePage, kCGPDFCropBox);

    //create empty page with corresponding bounds in new document
    UIGraphicsBeginPDFPageWithInfo(templatePageBounds, nil);

    CGContextRef context = UIGraphicsGetCurrentContext();

    //flip context due to different origins
    CGContextTranslateCTM(context, 0.0, templatePageBounds.size.height);
    CGContextScaleCTM(context, 1.0, -1.0);

    //copy content of template page on the corresponding page in new file
    CGContextDrawPDFPage(context, templatePage);

    //flip context back
    CGContextTranslateCTM(context, 0.0, templatePageBounds.size.height);
    CGContextScaleCTM(context, 1.0, -1.0); 
 }
CGPDFDocumentRelease(PDFDocument);

UIGraphicsEndPDFContext(); 

But I want any other easy way to convert PDFDocument to NSdataand save to a directory. Please, help.

+4
source share
2 answers

, , PDF . , PDF , , , , , .. . CGPDF API, .

+1

iPDFdev, Apple CoreGraphics - , , . , , , , .

Open Source PoDoFo muPDF (GPL/commercial), . SDK PSPDFKit, PSPDFProcessor - API Android.

+1

All Articles