我编写了这段代码片段,它采用一组 UIView 并将它们呈现为 PDF。但是,每个视图都被呈现到一个单独的页面中,因为我不知道如何合并 PDF 页面或将所有视图呈现到一个页面中。
当前代码:
+ (NSData*)pdfFromViews:(NSArray*)views
{
NSMutableData* pdf = [NSMutableData data];
UIGraphicsBeginPDFContextToData(pdf, CGRectZero, nil);
CGContextRef context = UIGraphicsGetCurrentContext();
for(UIView* view in views)
{
UIGraphicsBeginPDFPageWithInfo(view.bounds, nil);
[view.layer renderInContext:context];
}
UIGraphicsEndPDFContext();
return pdf;
}
如果我只调用此行一次 -无论我对上下文进行什么更改或使用什么大小的 CGRect UIGraphicsBeginPDFPage()
,视图都会被绘制在彼此之上。view.layer.frame
我对当前的图像质量很满意,不需要在 PDF 中添加任何链接或文本。
我正在寻找一种方法来合并我生成的 PDF 页面,或者将我的视图绘制到一个页面中。注意:我无法将我的视图作为子视图添加到公共父视图中,因为它会扰乱我的应用程序布局。理想情况下,我会这样做,但 UIViews 不能被复制。