Python使用Reportlab处理PDF数据 - 创建特殊功能
生成PDF时,ReportLab可以使用几个特殊功能。 如:
- 文件注释
- 书签
- 页面过渡
- 加密
- 交互式表格
文件注释
您也可以使用ReportLab将元数据添加到PDF中。 这可以通过调用以下不言自明的canvas方法来完成:
- setAuthor()
- setTitle()
- setSubject()
您也可以使用ReportLab将元数据添加到PDF中。 这可以通过调用以下不言自明的canvas方法来完成:
- setAuthor()
- setTitle()
- setSubject()
文件注释不可见。 您只能通过打开“文档属性”对话框来查看它们,该对话框可在Adobe Reader中的“文件”->“属性”菜单项中找到。 这是向存档软件或其他可能需要使用PDF的软件提供有关文档的简单标准信息的好方法。
让我们看一个简单的演示:
代码略
所有这些都设置了PDF的作者,标题和主题。 如果在Adobe Reader中打开PDF并转到“文件”->“属性”,则应看到类似以下内容:
书签
ReportLab支持将书签添加到PDF。 书签是一个内部超链接,您可以单击该超链接来浏览文档。 ReportLab仅支持从文档的一部分跳到另一部分的功能。 跳转后,您还可以在文档阅读器中控制缩放级别。 要将书签添加到文档中,您将需要使用bookmarkPage画布方法。 为了使书签可见可见,您还需要调用addOutlineEntry方法。
bookmarkPage画布方法标记如下所示:
canvas.bookmarkPage(name,fit='Fit',left=None,top=None,bottom=None,right=None,zoom)
bookmarkPage画布方法的默认设置是将页面本身定义为跳转目标。 默认情况下,它将缩放整个页面以适合屏幕。
让我们看一个创建书签的简单示例:
代码略
在这里,我们创建画布对象并绘制一个字符串。 然后,我们添加一个书签并调用showPage方法。 这将有效地创建一个分页符,以便对画布进行的任何其他图形调用都将在下一页上进行。 因此,我们在第2页上绘制了一个新字符串并添加了另一个书签。 最后,我们通过上述的addOutlineEntry方法将书签添加到PDF的轮廓中。 addOutlineEntry方法标记如下:
canvas.addOutlineEntry(self, title, key, level=0, closed=None)
在我们的示例中,我们仅传递标题和key。 key必须与我们之前在文档中添加的书签的名称匹配。 运行此代码时,您将在PDF的导航侧栏中看到类似以下内容的内容:
大纲树
ReportLab将导航侧栏称为大纲树。 当您要将大纲条目添加到大纲树时,需要使用前面提到的addOutlineEntry方法。 许多用户喜欢使用侧边栏浏览文档,因此了解如何向该侧边栏添加条目可能很有价值。
正如我们刚学到的,可以将四个参数传递给addOutlineEntry方法:title,key,level和close。 title参数是将出现在导航窗格中的标题。 key是您在创建书签时使用的文档中的唯一字符串。 level参数默认为零,这是最高级别。 您一次只能下降一个级别。 如果您尝试下降多个级别,则会引发错误。 最后,closed参数告诉导航窗格是应该关闭还是打开书签。
页面过渡
ReportLab支持页面过渡的概念,这是一种有限形式的过渡,您可以在幻灯片之间切换时将其添加到Microsoft Powerpoint。 在这种情况下,仅当您将过渡设置为全屏模式时,才能在Adobe Reader中激活过渡。 这是您可以应用的过渡列表:
PageTransitionEffects = {'Split': [direction_arg, motion_arg],'Blinds': [dimension_arg],'Box': [motion_arg],'Wipe' : [direction_arg],'Dissolve' : [],'Glitter':[direction_arg]}
如您所见,您有六个可供选择。 如上所示,您可以应用方向自变量或运动自变量或两者都应用。 这是ReportLab文档的清单,显示了这些参数的有效值:
direction_arg = [0,90,180,270]
dimension_arg = ['H', 'V']
如果要向PDF添加过渡效果,则需要调用setPageTransition canvas方法,如下所示:
canvas.setPageTransition(self, effectname=None, duration=1,direction=0, dimension='H', motion='I')
让我们创建一个简单的示例:
代码略
详情参阅 - 亚图跨际
Python使用Reportlab处理PDF数据 - 创建特殊功能相关推荐
- Python使用Reportlab处理PDF数据 - 图形和图表
简述 reportlab.graphics子程序包是作为一组独立程序开始的. 今天,它已完全集成到ReportLab工具包的其余部分中. 图形子软件包为开发人员提供了一组强大的功能,可用于创建图表和图 ...
- Python使用Reportlab处理PDF数据 - 其他可流动(flowable)
简述 ReportLab还可以使用其他几个Flowable. 在本本中,我们将研究以下Flowable: Preformatted XPreformatted Image Spacer PageBre ...
- Python使用Reportlab处理PDF数据 - 自定义页眉和页脚
有许多文档和报告要求您在首页或每页上都有页眉. 例如,如果您要为律师或法官生成报告,那么几乎可以肯定,所有页面上都需要合伙人信息. 在大多数医疗机构或医院中生成报告时也是如此. 他们的固定器必须以某种 ...
- 【Python办公自动化】使用reportlab制作pdf报告
原文作者:我辈李想 版权声明:文章原创,转载时请务必加上原文超链接.作者信息和本声明. Python使用folium制作地图并生成png图片 第一章 folium的方法和类的介绍(思维导图) 第二章 ...
- python使用fpdf生成pdf文件章节(chapter),包含:页眉、页脚、章节主题、数据排版等;
python使用fpdf生成pdf文件章节(chapter),包含:页眉.页脚.章节主题.数据排版等: #仿真数据 The year 1866 was marked by a bizarre deve ...
- python库Camelot从pdf抽取表格数据以及python库camelot安装及使用中的一些注意事项
一.python库camelot安装及使用中的一些注意事项 1)camelot方法有两种解析模式:流解析(stream).格子解析(lattice),其中格子解析能够保留表格完整的样式,对于复杂表格来 ...
- Python数据攻略-Pandas的数据创建与基础特性
大家好,我是Mr数据杨!今天将进入Python的Pandas数据世界,就像三国演义中的英雄们,用聪明才智塑造自己的命运. 记得三国中,周瑜曾利用兵法巧妙策划火烧赤壁,击败曹军.这就像创建一个Panda ...
- aws python库_如何使用Python,AWS和IEX Cloud创建自动更新股市数据的Excel电子表格
aws python库 Many Python developers in the financial world are tasked with creating Excel documents f ...
- Python自动化办公【PDF文件自动化】
PDF 文件可以分为可编辑型PDF 文件与扫描型PDF 文件,内容可以复制,是可编辑型PDF文件,反之则是扫描型PDF 文件.简单理解扫描型PDF文件是由一张张图像构建而成. 读取PDF文件内容 1. ...
- python 读取文件读出来是什么格式-深入学习python解析并读取PDF文件内容的方法...
这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...
最新文章
- 基于GAN的图像水印去除器,效果堪比PS高手
- 【技术贴】安装sql server 2005后不能连接服务器,没有studio express以及安
- Difference: throw or throw ex?
- NET问答: 如何将 ASP.NET Core WebAPI 中抛出的异常封装成对象?
- 使用贝赛尔路径(UIBezierPath)创建画板
- Repository 返回 IQueryable?还是 IEnumerable?
- java中methods方法_java中Class.getMethod方法
- python股票接口_Python 从 sina 股票数据接口读取数据,并保存到 MySQL 数据库
- Lua: 给 Redis 用户的入门指导
- 1年经验却拿总监薪资?看到他做的数据可视化报表,我彻底服了
- centos下不重装php——给PHP添加新扩展库
- C#:把发表的时间改为几个月,几天前,几小时前,几分钟前,或几秒前
- 智慧农业:农业物联网实施方案
- 基于 VisualStudio2019 的 ASP.NET 后台环境搭建
- 使用浏览器合成语音播放
- python拦截广告弹窗_通过python实现弹窗广告拦截过程详解
- Zemax学习笔记(11) - 变焦镜头设计实例
- EditText输入完成后自动关闭输入法
- ariang/Aria2 RPC 服务器错误/Aria2状态/未连接
- swing hacks_这些firefox hacks和扩展程序增强了您的隐私
热门文章
- MT4 API 跟单交易接口更新
- 几个通用有限元软件简介
- winform遍历bartender_C# 调用Bartender打印的2种方式
- IDM下载器最新版本6.32.7
- Learun FrameWork V7.0,敏捷开发向导快速配置
- 在线预览word接口
- linux系统查看网卡是否开启,查看Linux下网卡状态或 是否连接
- 嵩天《Python网络爬虫与信息提取》实例1:Requests库网络爬虫实战5个实例
- android脚本录制非root,Android 自动精灵 V2.13.1 支持脚本录制免ROOT
- java二路归并排序算法_二路归并排序的java实现