在Xcode中将屏幕截图转换为PDF?

时间:2012-03-02 16:36:16

标签: iphone xcode pdf frameworks image-conversion

如何将在iPhone上拍摄的屏幕截图转换为PDF文件。很容易截取屏幕截图并将其放入UIImage中,但这是我难倒的转换。我看了一下Quartz框架,它是Xcode中唯一一个我知道支持PDF格式的框架,但是找不到任何可以使它工作的东西。我缺少Xcode原生的东西吗?如果没有,是否有一个可以处理此类转换的公共框架?

2 个答案:

答案 0 :(得分:1)

我明白了。它涉及将屏幕截图保存为UIImage,然后使用非常有用的教程here来帮助我进行PDF转换。事实证明,有一些函数可以在Core Graphics类中处理PDF文档的制作。

答案 1 :(得分:-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以上