将整个uiview保存为PDF格式

时间:2012-04-13 18:22:31

标签: objective-c xcode user-interface uiviewcontroller xcode4.2

我知道如何以PDF格式保存uiview但我的问题是如何以PDF格式保存整个uiview,例如,如果你有一个比iPad显示更长的页面,你需要滚动它我只能保存PDF文件中的活动视图但其余部分不存在。 我正在寻求帮助或任何帮助我的教程。

先谢谢。

1 个答案:

答案 0 :(得分:1)

您可以将视图呈现为这样的PDF:

#define kDefaultPageHeight 1024
#define kDefaultPageWidth  768
#define kMargin 5

CGRect origframe = someView.frame;
NSString *heightStr = origFrame.size.height;
int height = [heightStr intValue];

// Size of the view in the pdf page
CGFloat maxHeight   = kDefaultPageHeight - 2*kMargin;
CGFloat maxWidth    = kDefaultPageWidth - 2*kMargin;
int pages = ceil(height / maxHeight); // or use 1 if you only have 1 page.

UIGraphicsBeginPDFContextToFile(@"some/full/path.pdf", CGRectZero, nil);
UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, kDefaultPageWidth, kDefaultPageHeight), nil);
CGContextRef currentContext = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(currentContext, kMargin, kMargin);

/* this is the view that you will render to the PDF */
[someView.layer renderInContext:currentContext];

UIGraphicsEndPDFContext();

当然这是一段粗略的代码片段,您需要根据自己的需要进行调整