我在其他几个论坛上问过这个问题并没有回复,所以我希望有人能指点我正确的方向。我的工作有一个非常简单的一个屏幕应用程序。它基本上只是一个1页纸质报告的重新创建,它有一个公司徽标,一些标签,一些文本框和报告的滚动文本框。
我需要能够填写报告,然后单击按钮将其保存为图形形式,以便稍后传真,打印或通过电子邮件发送。目前,我只是以编程方式拍摄屏幕并将其保存到照片库(屏幕截图默认)。然后我可以通过照片发送电子邮件。这项工作正常,但充其量只是hacky。
我已经阅读了新的iPad 3.2指南来创建PDF(显然它应该比以前容易得多)但是我无法让它工作,我现在花了无数个小时。我希望有人能帮我解决。
或者,如果有人知道如何重定向存储屏幕捕获的位置(默认位于相册中),那么也许我可以使该功能正常工作。如果我可以将屏幕截图重定向到存储在我的应用程序文档文件夹中,那么我可以使用MFMailCompose将其附加到电子邮件中。
最后,在旁注中,有没有人知道通过触摸捕获数字签名的好方法。例如,在转换为PDF或进行屏幕截图之前,我希望让我的用户能够通过文档底部的触摸来签名。
提前感谢您的帮助。 -Ray
答案 0 :(得分:0)
我正在使用以下代码段。它适用于 单页PDF生成 。 它使用您拥有内容的任何视图,并将其捕获为PDF文件并存储到文档目录中。
关于某个功能
{
....
// here container view is my content to be converted to PDF file
// filepath is the path to where it should be write in our documents directory
CGContextRef pdfContext = [self createPDFContext:containerView.bounds path:(CFStringRef)filePath];
NSLog(@"PDF Context created");
CGContextBeginPage (pdfContext,nil); // 6
//turn PDF upsidedown
CGAffineTransform transform = CGAffineTransformIdentity;
transform = CGAffineTransformMakeTranslation(0, containerView.bounds.size.height);
transform = CGAffineTransformScale(transform, 1.0, -1.0);
CGContextConcatCTM(pdfContext, transform);
//Draw view into PDF
[containerView.layer renderInContext:pdfContext];
CGContextEndPage (pdfContext);// 8
CGContextRelease (pdfContext);
....
}
- (CGContextRef) createPDFContext:(CGRect)inMediaBox path:(CFStringRef) path
{
CGContextRef myOutContext = NULL;
CFURLRef url;
url = CFURLCreateWithFileSystemPath (NULL, // 1
path,
kCFURLPOSIXPathStyle,
false);
if (url != NULL) {
myOutContext = CGPDFContextCreateWithURL (url,// 2
&inMediaBox,
NULL);
CFRelease(url);// 3
}
return myOutContext;// 4
}