我已经在我的应用程序中实现了一个非常基本的PDF查看器,但是我想知道是否可以向PDF中添加注释。我已经查看了SDK文档,但没有发现任何东西。我有两个问题要问:
谢谢。
发布于 2011-06-16 18:26:38
您可以通过读取PDF页面,将其绘制到新的PDF图形上下文中,然后将额外的内容绘制到该图形上下文中来进行注释。下面是一些代码,将“示例注释”添加到现有的PDF中(100.0100.0)。方法getPDFFileName返回原始PD的路径。getTempPDFFileName返回新PDF的路径,该路径是原始的,加上注释。
若要更改注释,只需添加更多的绘图代码,以代替drawInRect:withFont:方法。有关如何做到这一点的更多信息,请参见iOS的绘图和打印指南。
- (void) exampleAnnotation;
{
NSURL* url = [NSURL fileURLWithPath:[self getPDFFileName]];
CGPDFDocumentRef document = CGPDFDocumentCreateWithURL ((CFURLRef) url);// 2
size_t count = CGPDFDocumentGetNumberOfPages (document);// 3
if (count == 0)
{
NSLog(@"PDF needs at least one page");
return;
}
CGRect paperSize = CGRectMake(0.0,0.0,595.28,841.89);
UIGraphicsBeginPDFContextToFile([self getTempPDFFileName], paperSize, nil);
UIGraphicsBeginPDFPageWithInfo(paperSize, nil);
CGContextRef currentContext = UIGraphicsGetCurrentContext();
// flip context so page is right way up
CGContextTranslateCTM(currentContext, 0, paperSize.size.height);
CGContextScaleCTM(currentContext, 1.0, -1.0);
CGPDFPageRef page = CGPDFDocumentGetPage (document, 1); // grab page 1 of the PDF
CGContextDrawPDFPage (currentContext, page); // draw page 1 into graphics context
// flip context so annotations are right way up
CGContextScaleCTM(currentContext, 1.0, -1.0);
CGContextTranslateCTM(currentContext, 0, -paperSize.size.height);
[@"Example annotation" drawInRect:CGRectMake(100.0, 100.0, 200.0, 40.0) withFont:[UIFont systemFontOfSize:18.0]];
UIGraphicsEndPDFContext();
CGPDFDocumentRelease (document);
}发布于 2015-02-26 02:34:36
我正在从事这项工作,并创建了一个GitHub项目。请检查一下这里。
发布于 2010-02-22 18:43:28
我不认为PDFAnnotation或PDFKit是从桌面移植到iPhone的.可能是发射雷达的一个很好的借口。然而,在此期间,哈鲁可能会帮助您渡过难关。
https://stackoverflow.com/questions/2313008
复制相似问题