首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPad应用:合并PDF文件为1pdf文档/创建多页滚动视图的PDF文档

iPad应用:合并PDF文件为1pdf文档/创建多页滚动视图的PDF文档
EN

Stack Overflow用户
提问于 2011-05-17 16:41:53
回答 1查看 2.5K关注 0票数 1

我正在编写一个iPad应用程序,它使用带有页面控件的滚动视图。我需要创建一个作为1 PDF文件的所有页面的PDF。到目前为止,我认为我应该遍历所有的子视图(页面)并为每个子视图(页面)创建PDF文件(使用CGPDFContext)。但是我确实需要把所有的文件合并成一个PDF文档。你能帮我这样做吗?

或者,如果你有更好的方法来创建一个包含多个页面的PDF文档,那就更好了!

请帮帮忙。我到处搜索,看到Mac有一些使用PDFDocument,insertPage函数的东西。我找不到适用于iOS的类似方法??

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-17 16:47:48

要创建多部分PDF,请执行以下操作:

代码语言:javascript
复制
-(CGContextRef) createPDFContext:(CGRect)inMediaBox path:(NSString *) path
{
    CGContextRef myOutContext = NULL;
    NSURL * url;

    url = [NSURL fileURLWithPath:path];
    if (url != NULL) {
        myOutContext = CGPDFContextCreateWithURL (url,// 2
                                                  &inMediaBox,
                                                  NULL);
    }
    return myOutContext;// 4
}

-(void)createPdfFromScrollview:(UIScrollView *)scrollview
{

    CGContextRef pdfContext = [self createPDFContext:CGRectMake(0, 0, WIDTH, HEIGHT) path:outputFilePath];

    for(UIView * view in scrollview.subviews)
    {
        CGContextBeginPage (pdfContext,nil);
        CGAffineTransform transform = CGAffineTransformIdentity;
        transform = CGAffineTransformMakeTranslation(0, HEIGHT);
        transform = CGAffineTransformScale(transform, 1.0, -1.0);
        CGContextConcatCTM(pdfContext, transform);            
        //Draw view into PDF
        [view.layer renderInContext:pdfContext];

        CGContextEndPage (pdfContext);         
    }

    CGContextRelease (pdfContext);
}

希望这能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6028322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档