iOS:quartz2D绘图(在PDF文件上绘制图片)

简介:

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张笑脸图片分别被绘制在上面。

程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!
分类:  iOS高级

本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/4869473.html,如需转载请自行联系原作者
相关文章
|
2月前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
552 0
|
7月前
|
存储 JSON API
如何将 Swagger 文档导出为 PDF 文件
你会发现自己可能需要将 Swagger 文档导出为 PDF 或文件,以便于共享和存档。在这篇博文中,我们将指导你完成将 Swagger 文档导出为 PDF 格式的过程。
|
4月前
|
C#
【PDF提取内容改名】批量提取PDF指定区域内容重命名PDF文件,PDF自动提取内容命名的方案和详细步骤
本工具可批量提取PDF中的合同编号、日期、发票号等关键信息,支持PDF自定义区域提取并自动重命名文件,适用于合同管理、发票处理、文档归档和数据录入场景。基于iTextSharp库实现,提供完整代码示例与百度、腾讯网盘下载链接,助力高效处理PDF文档。
603 40
|
4月前
|
编译器 Python
如何利用Python批量重命名PDF文件
本文介绍了如何使用Python提取PDF内容并用于文件重命名。通过安装Python环境、PyCharm编译器及Jupyter Notebook,结合tabula库实现PDF数据读取与处理,并提供代码示例与参考文献。
|
6月前
|
人工智能 搜索推荐 算法
PDF 转 JPG 图片小工具:CodeBuddy 助力解决转换痛点
在 PDF 转 JPG 的实际应用中,用户普遍面临转换质量差、批量处理效率低、格式兼容性不足以及编程实现困难等痛点。而 CodeBuddy 凭借智能代码生成与优化、实时错误诊断修复、助力代码学习拓展,以及支持多场景适配与个性化定制等强大的 AI 编程能力,精准直击这些难题。使用 CodeBuddy 开发 Python PDF 转 JPG 小工具,能够有效提升转换效率与质量,降低开发门槛和成本,为用户带来高效、优质的文件格式转换体验。
219 16
|
6月前
|
人工智能 算法 安全
使用CodeBuddy实现批量转换PPT、Excel、Word为PDF文件工具
通过 CodeBuddy 实现本地批量转换工具,让复杂的文档处理需求转化为 “需求描述→代码生成→一键运行” 的极简流程,真正实现 “技术为效率服务” 的目标。感兴趣的快来体验下把
245 10
|
5月前
|
人工智能 开发工具 开发者
【HarmonyOS 5】鸿蒙应用实现发票扫描、文档扫描输出PDF图片或者表格的功能
HarmonyOS 系统提供的核心场景化视觉服务,旨在帮助开发者快速实现移动端文档数字化功能。
240 0
|
5月前
|
数据采集 存储 API
Python爬虫结合API接口批量获取PDF文件
Python爬虫结合API接口批量获取PDF文件
|
9月前
|
人工智能 编解码 文字识别
OCRmyPDF:16.5K Star!快速将 PDF 文件转换为可搜索、可复制的文档的命令行工具
OCRmyPDF 是一款开源命令行工具,专为将扫描的 PDF 文件转换为可搜索、可复制的文档。支持多语言、图像优化和多核处理。
1017 17
OCRmyPDF:16.5K Star!快速将 PDF 文件转换为可搜索、可复制的文档的命令行工具
|
8月前
|
人工智能 文字识别 自然语言处理
1.6K star!这个开源文本提取神器,5分钟搞定PDF/图片/Office文档!
Kreuzberg 是一个基于 Python 的文本提取库,支持从 PDF、图像、Office 文档等 20+ 格式中提取文本内容。采用 MIT 开源协议,具备本地处理、异步架构、智能 OCR 等特性,特别适合需要隐私保护的文档处理场景。
770 1