Ati*_*tif 0 core-graphics nsdata cgpdfdocument ios mfmailcomposeviewcontroller
我有一个存储在本地存储上的多页PDF文档.我想从该pdf文档中提取任何页面并将其转换为NSData以将其附加到"MFMailComposeViewController".使用以下代码行,我可以轻松地检索所需的页面...
CGPDFDocumentRef pdfDoc=CGPDFDocumentCreateWithURL(pdfURL);
CGPDFPageRef pdfPage = CGPDFDocumentGetPage(pdfDoc, pageNumber);
Run Code Online (Sandbox Code Playgroud)
但我无法找到转换pdfPage成的方式,NSData以便我可以用邮件附加它.
注意:要求是以PDF格式附加页面,因此请不要建议将PDF转换为PNG或JPEG.
CGPDF主要用于绘制和绘制PDF,而不是用于转换PDF数据.因此,如果要提取页面,则必须绘制它.用例如:
// input
CGDataProviderRef provider = CGDataProviderCreateWithCFData((__bridge CFDataRef)inputData);
CGPDFDocumentRef document = CGPDFDocumentCreateWithProvider(provider);
CGPDFPageRef page = CGPDFDocumentGetPage(document, pageIndex);
CGRect mediaBox = CGPDFPageGetBoxRect(page, kCGPDFMediaBox);
// output
CGDataConsumerRef consumer = CGDataConsumerCreateWithCFData((__bridge CFMutableDataRef)outputData);
CGContextRef context = CGPDFContextCreate(consumer, &mediaBox, NULL);
// draw
CGContextBeginPage(context, &mediaBox);
CGContextDrawPDFPage(context, page);
CGContextEndPage(context);
// cleanup
CGDataProviderRelease(provider);
CGPDFDocumentRelease(document);
CGDataConsumerRelease(consumer);
CGContextRelease(context);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2884 次 |
| 最近记录: |