保存为PDF后获取图形上下文 - 目标C.

时间:2014-12-05 04:02:13

标签: objective-c annotations pdf-generation core-graphics quartz-2d

如何在保存后从PDF获取核心图形上下文?例如,我在PDF页面中创建一个矩形,我需要在保存后在PDF页面内编辑,更新或删除该矩形。

这是我用来在目标c中的PDF页面中保存矩形的代码。

CGPDFDocumentRef pdf = CGPDFDocumentCreateWithURL((CFURLRef)[[NSBundle mainBundle] URLForResource:@"tutorial" withExtension:@"pdf"]);

const size_t numberOfPages = CGPDFDocumentGetNumberOfPages(pdf);

NSMutableData* data = [NSMutableData data];
UIGraphicsBeginPDFContextToData(data, CGRectZero, nil);

for(size_t page = 1; page <= numberOfPages; page++)
{
    //  Get the current page and page frame
    CGPDFPageRef pdfPage = CGPDFDocumentGetPage(pdf, page);
    const CGRect pageFrame = CGPDFPageGetBoxRect(pdfPage, kCGPDFMediaBox);

    UIGraphicsBeginPDFPageWithInfo(pageFrame, nil);

    //  Draw the page (flipped)
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGContextSaveGState(ctx);
    CGContextScaleCTM(ctx, 1, -1);
    CGContextTranslateCTM(ctx, 0, -pageFrame.size.height);
    CGContextDrawPDFPage(ctx, pdfPage);
    CGContextRestoreGState(ctx);

    //  Draw a red box
    [[UIColor redColor] set];
    UIRectFill(CGRectMake(20, 20, 100, 100));
}

UIGraphicsEndPDFContext();

CGPDFDocumentRelease(pdf);
pdf = nil;

现在我需要编辑或删除上面创建的矩形。请指教!!!

1 个答案:

答案 0 :(得分:0)

无法使用CoreGraphics API从PDF文件中删除内容。
您需要根据某些条件重新设计代码,以便在PDF文件中绘制或不绘制矩形。