Iphone 使用数据生成PDF

Iphone 使用数据生成PDF,iphone,pdf,Iphone,Pdf,在我的iPhone应用程序中,我有几个数据项。我想使用这些数据项生成一个PDF文件,并将PDF文件附加到电子邮件中。据我所知,我需要使用Quartz 2D绘制PDF文件。 是否有关于绘制PDF的示例代码或建议?以下是我用来生成包含某些Quartz图形的PDF表示形式的NSData对象的代码: NSMutableData *pdfData = [[NSMutableData alloc] init]; CGDataConsumerRef dataConsumer = CGDataConsumerC

在我的iPhone应用程序中,我有几个数据项。我想使用这些数据项生成一个PDF文件,并将PDF文件附加到电子邮件中。据我所知,我需要使用Quartz 2D绘制PDF文件。
是否有关于绘制PDF的示例代码或建议?

以下是我用来生成包含某些Quartz图形的PDF表示形式的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数据保存到磁盘或将其作为附件添加到电子邮件中,记住在完成后将其释放。

以下是我用来生成包含某些Quartz图形的PDF表示形式的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数据保存到磁盘或将其作为附件添加到电子邮件中,并记住在完成后将其释放。

以下是CGPDF功能的一个良好(有效)示例:

它使用CATiledLayer+UIScrollView,这可能不适合各种阅读器,但它仍然向您展示了如何在没有UIWebView的情况下加载和绘制PDF文档(这严重限制了您的能力)

将图层类型改回图层,使用CGPDFDocumentGetNumberOfPages和CGPDFDocumentGetPage添加页面处理,这样您就拥有了一个非常好的阅读器

我不知道如何执行注释,我想您可能需要在文档顶部使用自己的数据结构。

以下是CGPDF函数的一个良好(有效)示例:

它使用CATiledLayer+UIScrollView,这可能不适合各种阅读器,但它仍然向您展示了如何在没有UIWebView的情况下加载和绘制PDF文档(这严重限制了您的能力)

将图层类型改回图层,使用CGPDFDocumentGetNumberOfPages和CGPDFDocumentGetPage添加页面处理,这样您就拥有了一个非常好的阅读器

我不知道如何执行注释,我怀疑您需要在文档顶部使用自己的数据结构。

这有一个代码示例,说明您想要什么。这有一个代码示例,说明您想要什么。