Iphone 从plist文件生成PDF(包含文本和图像),可以吗?
背景: 我的应用程序将用户输入的信息保存到plist文件中。拍摄照片或从库中选择照片时,照片也会作为NSData保存到plist 我想获取plist文件中包含的信息并生成一个PDF文档,包括来自NSData的图像 问题: 我听说有一种从UIView生成PDF的方法,是有一个很好的例子,还是一种不用编写1000行C代码的简单方法Iphone 从plist文件生成PDF(包含文本和图像),可以吗?,iphone,ios,pdf,uiview,quartz-graphics,Iphone,Ios,Pdf,Uiview,Quartz Graphics,背景: 我的应用程序将用户输入的信息保存到plist文件中。拍摄照片或从库中选择照片时,照片也会作为NSData保存到plist 我想获取plist文件中包含的信息并生成一个PDF文档,包括来自NSData的图像 问题: 我听说有一种从UIView生成PDF的方法,是有一个很好的例子,还是一种不用编写1000行C代码的简单方法 是否可以在Interface Builder中设计一个视图,然后使用一些神奇的代码从该视图生成PDF,使用plist文件中的数据?要生成PDF,您必须实际绘制整个PDF,
是否可以在Interface Builder中设计一个视图,然后使用一些神奇的代码从该视图生成PDF,使用plist文件中的数据?要生成PDF,您必须实际绘制整个PDF,将图形和文本放在每页的确切位置。苹果的解释了如何去做 不幸的是,这并不容易,而且我不知道有什么神奇的代码可以从视图生成PDF。这里有一些“神奇的代码”(引用@Matt;-)可以将视图层次结构写入PDF:
#import <QuartzCore/CALayer.h>
UIView *displayView = self.view;
CALayer *layer = displayView.layer;
CGRect pageRect = displayView.bounds;
if (UIGraphicsBeginPDFContextToFile(path, pageRect, [self pdfContextDictionary]) == NO) {
return nil; // error
}
UIGraphicsBeginPDFPage();
CGContextRef context = UIGraphicsGetCurrentContext();
[layer renderInContext:context];
UIGraphicsEndPDFContext();
#导入
UIView*displayView=self.view;
CALayer*layer=displayView.layer;
CGRect pageRect=displayView.bounds;
if(uigraphicsbeginpddfcontexttofile(路径,pageRect,[self-pdfContextDictionary])==NO){
返回nil;//错误
}
UIGraphicsBeginPDFPage();
CGContextRef context=UIGraphicsGetCurrentContext();
[层渲染上下文:上下文];
UIGraphicsSendPdfContext();
不幸的是,它以屏幕分辨率显示,
您可以创建一个比屏幕更大的版本,然后它将是一个更好的分辨率
要获得漂亮(痛苦)的PDF,请参阅上述参考指南保存为PDF的UIView可见部分的屏幕截图并不是几乎任何人都想要的PDF。