Сохранение PDF-документа на диск с помощью Quartz

Я пытаюсь нарисовать страницу PDF в контексте PDF, а затем сохранить его на диск. Я не могу понять, что не так. Может кто-нибудь дать мне несколько советов. Благодарю.

- (void)testQuartz:(NSData *)pdfDocumentData
{   
    //Create the pdf document reference
    CGDataProviderRef dataProvider = CGDataProviderCreateWithCFData((CFDataRef)pdfDocumentData);
    CGPDFDocumentRef document = CGPDFDocumentCreateWithProvider(dataProvider);
    CGDataProviderRelease(dataProvider); //Release the data provider

    //Create the pdf context
    CGPDFPageRef page = CGPDFDocumentGetPage(document, 0);
    CGRect pageRect = CGPDFPageGetBoxRect(page, kCGPDFMediaBox);
    CFMutableDataRef mutableData = CFDataCreateMutable(NULL, 0);

    CGDataConsumerRef dataConsumer = CGDataConsumerCreateWithCFData(mutableData);
    CGContextRef pdfContext = CGPDFContextCreate(dataConsumer, &pageRect, NULL);

    if (CGPDFDocumentGetNumberOfPages(document) > 0)
    {       
        //Draw the page onto the new context
        page = CGPDFDocumentGetPage(document, 0);
        CGContextDrawPDFPage(pdfContext, page);
    }
    else
    {
        NSLog(@"Failed to create the document");
    }

    //Write to disk
    [(NSMutableData *)mutableData writeToFile:@"/Users/David/Desktop/test.pdf" atomically:YES];

    //Clean up
    CGDataConsumerRelease(dataConsumer);
    CFRelease(mutableData);
    CGPDFDocumentRelease(document);
}

Ответы на вопрос(1)

Ваш ответ на вопрос