我想覆盖现有的 PDF 文件,而不是创建一个新文件。我不想绘制整个 PDF 文件,如果 PDF 文件有一百页,我只想绘制一页。
实际上,我想在 PDF 文件的页面上放置一些图像。如果用户点击保存按钮,它将被覆盖。不可能吗?有没有框架或sdk?
感谢您的任何回复。
支持 iPhone 中的 PDF 操作。苹果的文档如下http://developer.apple.com/library/ios/#documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_pdf/dq_pdf.html
-(void)createPDFFileFromSelectedPageNumber:(int)selectedPageNumber:(NSString*)fileName{
NSArray *arrayPaths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [arrayPaths objectAtIndex:0];
NSString *outpath = [[NSString alloc]initWithFormat:@"%@/output.pdf",path];
UIGraphicsBeginPDFContextToFile(outpath, CGRectZero, nil);
UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, 612, 792), nil);
NSURL *url = [[NSURL alloc] initFileURLWithPath:fileName];
CGPDFDocumentRef originalPDF = CGPDFDocumentCreateWithURL((__bridge CFURLRef)url);
CGPDFPageRef pdfPage = CGPDFDocumentGetPage(originalPDF, selectedPageNumber);
CGSize size = CGSizeMake(612.0, 792.0);
CGRect outRect = CGRectMake(0, 0, 612.0, 792.0);
UIGraphicsBeginImageContext(size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGAffineTransform pdfTransform = CGPDFPageGetDrawingTransform(pdfPage, kCGPDFMediaBox, outRect, 0, true);
CGContextConcatCTM(context, pdfTransform);
CGContextDrawPDFPage(context, pdfPage);
UIImage *output = UIGraphicsGetImageFromCurrentImageContext();
CGContextSaveGState (context);
UIGraphicsEndImageContext();
[output drawInRect:outRect];
UIGraphicsEndPDFContext();}
将源 PDF 文件的 filePath 和 pageNumber 传递给函数将为您提供具有单页的新 PDF。您可以根据您的要求进行进一步的增强。希望至少这会有所帮助。
直到现在,iOS 还没有提供编辑整个 PDF 文件的方法。喜欢这个问题,我以为他也想修改其中的一个页面。
第三方库会更好。
非常相似:在 iOS 上合并 PDF 文件
无法重新打开并继续编辑 PDF 文件。只需再次阅读和重绘整个 PDF。