简述

ReportLab还可以使用其他几个Flowable。 在本本中,我们将研究以下Flowable:

  • Preformatted
  • XPreformatted
  • Image
  • Spacer
  • PageBreak
  • CondPageBreak
  • KeepTogether
  • TableOfContents
  • SimpleIndex
  • ListFlowable

Preformatted

ReportLab有一些相互关联的Flowable,分别称为Preformatted和XPreformatted。 Preformatted Flowable被描述为类似于HTML <PRE>标签。 根据ReportLab的docstring:

它尝试完全按照您以固定宽度的“打字机”字体键入的文本显示文本。 默认情况下,换行符恰好是放置它们的位置,并且不会被换行。 您可以选择定义最大行长,然后代码将被包装; 以及在每个换行行的开头插入额外的字符(例如‘>’)。

该类的实例化如下所示:

Preformatted(text, style, bulletText=None,dedent=0, maxLineLength=None, splitChars=None,newLineChars=None)

这与Paragraph的实例化非常相似,尽管它是Flowable而不是Paragraph的预格式化子类。 如您所见,“预格式化”需要文本和段落样式,才能创建此Flowable的实例。 您还可以通过bulletText参数将其转换为项目符号。 下限默认为无。 如果碰巧设置了下垂,那么将删除所有公共的前导空格。 例如,如果要将dedent设置为5,则它将dedent或从字符串中删除5个字符。

maxLineLength参数用于定义Flowable中允许的最大行长。 如果您的文本恰好超过您定义的长度,则该行将自动分割。 如果您没有设置最大线长,而您的线对于页面来说太长,那么您的线将一直绘制到到达页面边缘,然后基本上被截断。 因此,如果您认为文本行很长,则应该设置最大行长。

splitChars参数告诉ReportLab要分割的字符。 默认情况下,它将在以下任意位置分割:空格,冒号,句号,分号,逗号,连字符,正斜杠,反斜杠,左括号,左方括号和左花括号。 当然,您可以通过显式设置来使用非标准字符。

如果您希望在创建新行时插入新字符,则可以设置newLineChars以插入这些字符。

让我们看一个使用预格式化的Flowable的简单示例:

代码略

此示例中包含一个常规段落和一个预格式化的Flowable。 两者的文本字符串中都有一些XML标记。 运行此命令时,将看到以下内容:

如您所见,Preformatted Flowable不使用Paragraph的XML标签,因此它们是完全可见的,并且对文本没有影响。

XPreformatted

XPreformatted Flowable实际上是段落Flowable的子类。 根据文档,这是“段落类的非重排形式”。 实际上,它将以与常规段落相同的方式与XML标签一起使用。 要创建XP格式化的Flowable,只需执行以下操作:

XPreformatted(text, style, bulletText=None,dedent=0, frags=None)

此处的参数以与使用段落或预格式化的Flowable时相同的方式工作。

代码略

Flowable的工作原理与预格式化的基本相同。 坦白说,我个人最常使用Flowable段落,除非您需要其中之一,否则我强烈建议您坚持使用它。

Image

这是在ReportLab中创建图像所需要的:

Image(filename, width=None, height=None)

如您所见,Image类接受3个参数:图像的文件名,宽度和高度。 filename参数是必需的,并且可以是文件路径,类似文件的对象或reportlab.graphics.shapes.Drawing的实例。 默认情况下,ReportLab仅支持jpeg格式。 但是,如果您安装了Pillow(或PIL)软件包,则还支持大多数其他图像类型。 width和height参数以点为单位指定图像的尺寸。 如果您未指定参数之一,则ReportLab只会假设图像的另一个尺寸也以磅为单位,并按原样使用它。 这意味着,如果仅指定尺寸之一,则将不会保持图像的纵横比,并且会拉伸图像。

让我们看一下Image Flowable的简单演示:

代码略

详情参阅 - 亚图跨际

Python使用Reportlab处理PDF数据 - 其他可流动(flowable)相关推荐

  1. Python使用Reportlab处理PDF数据 - 图形和图表

    简述 reportlab.graphics子程序包是作为一组独立程序开始的. 今天,它已完全集成到ReportLab工具包的其余部分中. 图形子软件包为开发人员提供了一组强大的功能,可用于创建图表和图 ...

  2. Python使用Reportlab处理PDF数据 - 自定义页眉和页脚

    有许多文档和报告要求您在首页或每页上都有页眉. 例如,如果您要为律师或法官生成报告,那么几乎可以肯定,所有页面上都需要合伙人信息. 在大多数医疗机构或医院中生成报告时也是如此. 他们的固定器必须以某种 ...

  3. 【Python办公自动化】使用reportlab制作pdf报告

    原文作者:我辈李想 版权声明:文章原创,转载时请务必加上原文超链接.作者信息和本声明. Python使用folium制作地图并生成png图片 第一章 folium的方法和类的介绍(思维导图) 第二章 ...

  4. python使用fpdf生成pdf文件章节(chapter),包含:页眉、页脚、章节主题、数据排版等;

    python使用fpdf生成pdf文件章节(chapter),包含:页眉.页脚.章节主题.数据排版等: #仿真数据 The year 1866 was marked by a bizarre deve ...

  5. python库Camelot从pdf抽取表格数据以及python库camelot安装及使用中的一些注意事项

    一.python库camelot安装及使用中的一些注意事项 1)camelot方法有两种解析模式:流解析(stream).格子解析(lattice),其中格子解析能够保留表格完整的样式,对于复杂表格来 ...

  6. python处理word或者pdf文件_利用python程序生成word和PDF文档的方法

    一.程序导出word文档的方法 将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob.Apache POI.Java2Word.iText等各种方式,以及使用fr ...

  7. Python自动化办公【PDF文件自动化】

    PDF 文件可以分为可编辑型PDF 文件与扫描型PDF 文件,内容可以复制,是可编辑型PDF文件,反之则是扫描型PDF 文件.简单理解扫描型PDF文件是由一张张图像构建而成. 读取PDF文件内容 1. ...

  8. python 读取文件读出来是什么格式-深入学习python解析并读取PDF文件内容的方法...

    这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...

  9. python中读取文件内容-深入学习python解析并读取PDF文件内容的方法

    这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...

最新文章

  1. 【算法】anchor free 和 anchor based 目标检测模型
  2. Github Star 11.5K项目再发版:AAAI 2021 顶会论文开源,80+多语言模型全新升级
  3. 使用设备mac好还是随机mac好_省4000我给MBP16搭配了一块2T SSD:希捷 酷鱼飞翼 Fast SSD使用测评...
  4. linux 驱动日志,Linux上的自由空间驱动的日志轮换?
  5. iOS UITableView获取特定位置的cell
  6. jetty java heap space_JFinal + HTTL + jdk1.7 启动服务内存溢出,Java heap space 但jdk1.6正常...
  7. 随想录(jtag知识点小结)
  8. RabbitMQ之路由键转发消息
  9. linux debian硬盘安装,Debian硬盘安装方法
  10. 1.1 OC类的认识
  11. Ubuntu Server 使用 PPA 安装 Java (JDK) 8
  12. if else if与if if语句的区别
  13. 设计模式之GOF23责任链模式
  14. java 40期_【40期】说一下线程池内部工作原理
  15. Java 将Excel转为et和ett格式
  16. 2020-05-08 工作中英语单词积累
  17. 正方形里面两个扇形相交部分_正方形里面为两个半圆相交,求相交部分阴影面积...
  18. 坡度如何用计算机计算,坡度计算公式图解,教你正确的计算方法
  19. 前端实现AWS s3亚马逊云储存上传资源
  20. iMac 2019一体机开箱体验,其内存是什么牌子,怎样换iMac内存?

热门文章

  1. react 版的知乎日报
  2. Shell学习笔记(三)——获取文件夹里所有文件的文件名
  3. (转)SpringBoot 打包为war包启动时导入外部配置文件
  4. 并发编程与源码解析 (三)
  5. 金融工程-复制定价法
  6. TCP握手没成功怎么办
  7. 15日柬埔寨和马来西亚“慢”游
  8. 布局“负数”的妙用——少年自负凌云笔(未完待续)
  9. 利用队列输出杨辉三角 C语言
  10. Pngquant cannot open pngquant for reding 报错原因解决办法