2012-03-02 92 views
1

如何将iPhone上的屏幕截图转换为PDF文件。将屏幕截图放入UIImage很容易,但这是我遭受挫折的转换。我看了一下Quartz框架,它是我知道支持PDF格式的Xcode中唯一的框架,但是在那里找不到任何东西来实现这个功能。 Xcode有什么原生的东西,我错过了?如果没有,是否有公共框架可以处理这样的转换?在Xcode中将屏幕截图转换为PDF?

+0

你想要一张只是图像的PDF吗? – EmilioPelaez 2012-03-02 16:38:13

+0

基本上,是的。至少这是第一步。我基本上想要设计一个捕捉当前屏幕的按钮,将其转换为PDF,然后从那里做更多的东西。这只是我不确定的转换本身。 – Jessica 2012-03-02 16:45:56

+0

我认为这样做的方式是使用CGPDFContext.h中的函数创建一个新的Core Graphics上下文,然后在该上下文中渲染图像,并关闭上下文。但我不知道下一步该做什么,而且真的没有时间去搜索更多,抱歉。 – EmilioPelaez 2012-03-02 16:53:12

回答

1

我想通了。它涉及将截图保存为UIImage,然后使用发现here的非常有用的教程来帮助我进行PDF转换。事实证明,在Core Graphics类中有处理PDF文档的功能。

+0

您能否提供更新后的链接,因为您发布的链接不再存在? – 2016-08-15 16:03:02

-1

您不会将屏幕截图转换为pdf。你可以创建一个截图,创建一个pdf并将屏幕截图插入pdf的第一页。

未测试的代码来创建图像:

nameStr = [NSString stringWithFormat:@"myImage.png"]; 
fileManager = [NSFileManager defaultManager]; 
paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
documentsDirectory = [paths objectAtIndex:0]; 
namePath = [documentsDirectory stringByAppendingString:@"/"]; 
namePath = [thumbnailPath nameStr]; 

CGRect contextRect = CGRectMake(0, 0, 1024, 768); 
UIGraphicsBeginImageContext(contextRect.size); 
[self.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

NSData *data = UIImagePNGRepresentation(viewImage); 
UIImage *myImage = [[UIImage alloc] initWithData:data]; 

未经测试的代码将图像添加到PDF:

pageSize = CGSizeMake(1024, 768); 
fileName = @"myFile.pdf"; 
pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName]; 

UIGraphicsBeginPDFContextToFile(pdfFileName, CGRectZero, nil); 
UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, pageSize.width, pageSize.height), nil); 

[myImage drawInRect:CGRectMake(0, 0, 1024, 768]; 
UIGraphicsEndPDFContext(); 

P.S.假设ipad 1024 x 768以上