如何允许表单(pdf)在保存后可重新编辑(目标 C)

Posted

技术标签:

【中文标题】如何允许表单(pdf)在保存后可重新编辑(目标 C)【英文标题】:How to allow forms(pdf) to be re-editable after they have been saved(Objective C) 【发布时间】:2015-08-26 14:21:25 【问题描述】:

我是 CoreGraphics 框架的新手。 我们使用 ILPDFKit 库来渲染 PDF 或表单 我们将绘制的路径嵌入到现有 PDF。这里是代码

-(NSData *)embededPdfAnnotationPointsInPdfAtPath:(NSString *)pdfPath

    NSURL *pdfUrl = [NSURL fileURLWithPath:pdfPath];
    CGPDFDocumentRef pdf = CGPDFDocumentCreateWithURL((CFURLRef)pdfUrl);

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

    for(NSUInteger pageIndex = 1; pageIndex <= [self pdfDrawViewInfo].count; pageIndex ++)
    
        //  Get the current page and page frame
        CGPDFPageRef pdfPage = CGPDFDocumentGetPage(pdf, pageIndex);
        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);

        UIImage *drawViewImage = [self annotatedImageForPdfPageAtIndex:(pageIndex - 1)];
        UIImage *annotatedImgForPdfPage = [self imageWithImage:drawViewImage scaledToSize:pageFrame.size] ;
        [annotatedImgForPdfPage drawInRect:pageFrame];
    

    UIGraphicsEndPDFContext();
//    CGPDFDocumentRelease(pdf);
//    CGImageRelease(annotatedImgCGref);

    return data;

上面的代码表明,我们只是在现有的 PDF 上粘贴图像(绘制的路径)。

后来的功能更改为“保存带有注释的 PDF(手绘)后,我们需要控制带注释的东西”

问题: 编辑带有注释的PDF(手绘),保存。保存带有注释的PDF后,我们需要再次获得它的编辑能力。我们需要知道这个过程的保存机制和步骤。请把你的意见放在这里,这样对我有很大的帮助。

谢谢你

【问题讨论】:

【参考方案1】:

我可能会保留 pdf 原始版本,并将编辑内容存储在另一个文件中。

比每次用户保存时,应用程序都会将注释和其他内容应用到原始版本并生成最终的 pdf(在共享或导出功能的情况下)

这会给你一个完全的控制,(我想这也是“apple photo”、“iPhoto”和“Aperture”管理图片修改的相同方式......)

【讨论】:

感谢您的支持。将编辑内容存储在另一个文件中。请详细说明步骤。

以上是关于如何允许表单(pdf)在保存后可重新编辑(目标 C)的主要内容,如果未能解决你的问题,请参考以下文章

如何在保存 PDF 表单时阻止 Adob​​e Reader 询问“另存为”(即只允许“保存”)?

具有多值的 Magnolia 可折叠复合字段允许我保存但在编辑时无法重新打开

用 PHP 填写 PDF 表单 [关闭]

如何在浏览器中编辑pdf并将其保存到服务器

Adobe Reader来填写的表单无法保存,我怎么做pdf表单才能使别人可以用Adobe Reader来填写的表单能保存

Python PDF 表单展平