博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS:quartz2D绘图(在PDF文件上绘制图片)
阅读量:7224 次
发布时间:2019-06-29

本文共 2350 字,大约阅读时间需要 7 分钟。

quartz2D还可以在PDF文件上绘制图片,它有自己的PDF Graphics Context上下文,通过UIGraphicsBeginPDFContextToFile方法开始上下文后就可以绘制图片了,最后记得使用UIGraphicsEndPDFContext()方法结束上下文。绘制pdf时,既可以绘制单页pdf,也可以绘制多页pdf成一本书,在绘制开始时,使用UIGraphicsBeginPDFPage()开始新的一页这是非常重要的。下面演示绘制单页pdf和多页的pdf。

 

具体的实例如下:

//将图片绘制在单页的pdf上

#parma mark -创建单页pdf

-(void)createPDF{    //设置pdf文件的路径    NSArray *documents = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);        //文档目录    NSString *document = [documents lastObject];    //NSLog(@"%@",document);        //拼接pdf路径    NSString *PDFpath = [document stringByAppendingPathComponent:@"img.pdf"];        //开始pdf的上下文    UIGraphicsBeginPDFContextToFile(PDFpath, CGRectMake(0, 0, 320, 480), nil);        //获取当前的绘图上下文    CGContextRef context = UIGraphicsGetCurrentContext();        //开始pdf新的一页    UIGraphicsBeginPDFPage();        //绘制圆形    CGContextAddEllipseInRect(context, CGRectMake(100, 100, 100, 100));    [[UIColor redColor]set];    CGContextDrawPath(context, kCGPathEOFillStroke);        //绘制文字    NSString *str = @"this is a image page";    [str drawAtPoint:CGPointMake(50, 250) withAttributes:@{NSForegroundColorAttributeName:[UIColor redColor],NSFontAttributeName:[UIFont systemFontOfSize:30]}];        //结束pdf的上下文    UIGraphicsEndPDFContext();}

 

在沙盒目录下创建img.pdf文件和绘制在img.pdf文件上的圆图形和文字的截图为:

  

 

 

//将多张图片绘制在多页的pdf上

首先导入多张笑脸图片,导入的素材截图为:

#parma mark -创建多页pdf

-(void)createPDFBook{    //设置pdf文件的路径    NSArray *documents = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);        //文档目录    NSString *document = [documents lastObject];    //NSLog(@"%@",document);        //拼接pdf路径    NSString *PDFpath = [document stringByAppendingPathComponent:@"imageBook.pdf"];        //开始pdf的上下文(参数:设置pdf路径、设置pdf大小、附带pdf字典信息)    UIGraphicsBeginPDFContextToFile(PDFpath, CGRectMake(0, 0, 320, 480), nil);            //绘制图片    for (int i = 0; i<9; i++)    {        //开始新的一页        UIGraphicsBeginPDFPage();                //绘制图片        UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.png",i]];        [image drawInRect:CGRectMake(100, 200, 100, 100)];    }        //结束pdf的上下文    UIGraphicsEndPDFContext();}

在沙盒目录下创建imgBook.pdf文件和绘制在imgBook.pdf文件上的笑脸截图为:

   

  一共有9张图片,所以创建了9页pdf,9张笑脸图片分别被绘制在上面。

程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!
分类: 
本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/4869473.html,如需转载请自行联系原作者
你可能感兴趣的文章
Odoo domain写法及运用
查看>>
JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
查看>>
猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
查看>>
面试题:给你个id,去拿到name,多叉树遍历
查看>>
go append函数以及写入
查看>>
关于Java中分层中遇到的一些问题
查看>>
配置 PM2 实现代码自动发布
查看>>
android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
查看>>
iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
查看>>
诡异!React stopPropagation失灵
查看>>
Python_OOP
查看>>
个人博客开发系列:评论功能之GitHub账号OAuth授权
查看>>
mongodb--安装和初步使用教程
查看>>
ES6简单总结(搭配简单的讲解和小案例)
查看>>
text-decoration与color属性
查看>>
如何使用Mybatis第三方插件--PageHelper实现分页操作
查看>>
PyCharm搭建GO开发环境(GO语言学习第1课)
查看>>
Android交互
查看>>
提醒我喝水chrome插件开发指南
查看>>
列表数据转树形数据
查看>>