在我的iPhone应用程序中,我有几个数据项。我想使用这些数据项生成一个PDF文件,并在电子邮件中附加PDF文件。据我所知,我需要使用Quartz 2D来绘制PDF文件。有没有关于绘制PDF的示例代码或建议?
发布于 2009-12-09 01:53:06
下面是我用来生成一个包含一些Quartz图形的NSData表示的对象:
NSMutableData *pdfData = [[NSMutableData alloc] init];
CGDataConsumerRef dataConsumer = CGDataConsumerCreateWithCFData((CFMutableDataRef)pdfData);
const CGRect mediaBox = CGRectMake(0.0f, 0.0f, self.bounds.size.width, self.bounds.size.height);
CGContextRef pdfContext = CGPDFContextCreate(dataConsumer, &mediaBox, NULL);
UIGraphicsPushContext(pdfContext);
CGContextBeginPage(pdfContext, &mediaBox);
// Your Quartz drawing code goes here
CGContextEndPage(pdfContext);
CGPDFContextClose(pdfContext);
UIGraphicsPopContext();
CGContextRelease(pdfContext);
CGDataConsumerRelease(dataConsumer);然后,您可以将此PDF数据保存到磁盘或将其作为附件添加到您的电子邮件中,并记住在完成后释放它。
发布于 2011-10-06 15:50:24
下面是CGPDF函数的一个很好的(有效)示例:http://www.olivetoast.com/blog/hamish/simple_uiscrollview_catiledlayer_example.ot
它使用CATiledLayer + UIScrollView,这可能不适合各种阅读器,但它仍然向你展示了如何在没有UIWebView的情况下加载和绘制PDF文档(这严重限制了你的能力)。
将层类型改回层,然后使用CGPDFDocumentGetNumberOfPages和CGPDFDocumentGetPage添加页面处理,您就拥有了一个非常好的阅读器。
我不知道如何执行注释,我怀疑您需要在文档顶部使用自己的数据结构。
https://stackoverflow.com/questions/1864597
复制相似问题