PDF generation using data

前端 未结 2 1771
再見小時候
再見小時候 2021-01-16 03:57

In my iPhone application, I have several data items. I want to generate a PDF file using these data items and attach the PDF file in email. What I know, I need to use Quartz

相关标签:
2条回答
  • 2021-01-16 04:02

    Here is a good (working) example of the CGPDF functions: http://www.olivetoast.com/blog/hamish/simple_uiscrollview_catiledlayer_example.ot

    It uses a CATiledLayer + UIScrollView, this may not be appropriate for a reader of sorts, but it still shows you how to load and draw a PDF doc without UIWebView (which severely restricts your abilities).

    Change the layer type back to a layer, add in page handling using CGPDFDocumentGetNumberOfPages and then CGPDFDocumentGetPage and you have a pretty good reader.

    I don't know how to perform annotations, I suspect you would need your own data structure on top of the document.

    0 讨论(0)
  • 2021-01-16 04:27

    The following is what I've used to generate an NSData object containing a PDF representation of some Quartz graphics:

    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);
    

    You can then save this PDF data to disk or add it as an attachment to your email message, remembering to release it when done.

    0 讨论(0)
提交回复
热议问题