0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何用Python自动套用模板批量生成PDF文档

科技绿洲 来源:Python实用宝典 作者:Python实用宝典 2023-10-17 10:54 次阅读

今天就给大家讲讲如何用Python自动套用模板批量生成的PDF文档。

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,请访问这篇文章:超详细Python安装指南 进行安装。如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda

Windows环境下打开Cmd(开始—运行—CMD),苹果系统环境下请打开Terminal(command+空格输入Terminal),准备开始输入命令安装依赖。

当然,我更推荐大家用VSCode编辑器,把本文代码Copy下来,在编辑器下方的终端运行命令安装依赖模块,多舒服的一件事啊:Python 编程的最好搭档—VSCode 详细指南

在终端输入以下命令安装我们所需要的依赖模块:

pip install fpdf

看到 Successfully installed xxx 则说明安装成功。

本文完整源代码可在【Python实用宝典】公众号后台回复:批量生成pdf 下载

2.基本使用

PyPDF是从PHP移植到Python的第三方模块。其主要特点有:

1.非常容易使用和扩展
2.提供了许多简单示例
3.没有外部依赖项
4.不需要安装变异其他库(DLL)

它的基本功能有:

1.调整PDF精度、页面格式、边距
2.管理页眉、页脚
3.自动分页符、自动换行和文本对齐
4.支持图像、颜色、超链接文本
5.支持压缩

一个最简单的生成示例:

图片

生成的效果如下,由于PDF空白处太多,这里只截字体部分:

图片

把生成的文本变复杂一点:

图片

注意cell参数

  1. border 取值为0或1,代表是否显示边框。
  2. ln 是指在生成该文本框之后焦点移动到的位置,0 代表到该文本框的右边,1 代表换行,2 代表文本框的正下方。
  3. align 是指文本对齐格式,C为居中、L为左对齐、R为右对齐。

因此上述代码会生成类似这样的PDF文档:

图片

**cell **还有2个参数:

  1. fill 参数用于设置文本框的背景,TRUE时为白色,False为透明。
  2. link 参数用于添加超链接

下面看一个比较复杂的例子,带图片LOGO作为页眉,带页数作为页脚的PDF文档:

图片

看看要怎么实现这个PDF文档的生成。

首先需要继承FPDF类,以用于自定义页眉和页脚。

图片

这样设置完页眉也页脚后,只要你使用该类定义PDF文档,便会自动带上页眉页脚。

图片

真的是非常方便。

3.批量生成PDF

接下来在Python实用宝典网站(https://pythondict.com)上随机抽取了5位注册了账号的同学的ID批量制作祝福PDF文档。

这里可以复用咱刚自定义完成的页眉和页尾。不过,为了显示中文,需要在继承的类里面添加并设置字体为本地中文字体,如:

图片

注意,add_font第一个参数是该字体注册进FPDF的名字,之后set_font的时候都使用该名字。

然后将用户名都放到一个数组里,遍历该数组,填充用户名,循环批量生成PDF.

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模板
    +关注

    关注

    0

    文章

    108

    浏览量

    20561
  • PDF
    PDF
    +关注

    关注

    1

    文章

    168

    浏览量

    33691
  • python
    +关注

    关注

    56

    文章

    4792

    浏览量

    84630
收藏 人收藏

    评论

    相关推荐

    python调用labview生成的dll

    何用python调用labview生成的dll
    发表于 02-03 15:59

    如何利用python自动生成verilog模块例化模板

    如何利用python自动生成verilog模块例化模板
    发表于 06-21 06:06

    基于多种技术的Word设计文档自动生成平台

    阐述Word设计文档自动生成平台的框架结构,提出了结合VBA、ADO和ASP等技术的设计思路,并详细介绍了文档自动
    发表于 05-11 20:20 30次下载

    何用altium_designer_09_把已画好的原理图_自动生成pcb

    何用altium_designer_09_把已画好的原题图_自动生成pcb
    发表于 11-20 11:31 80次下载

    详解如何用AD生成Gerber文件

    详解如何用AD生成Gerber文件
    发表于 11-23 11:07 0次下载

    如何使用python实现批量删除文件名中的未知字符

    文档的主要内容详细介绍的是如何使用python实现批量删除文件名中的未知字符。
    发表于 10-28 16:54 16次下载
    如何使用<b class='flag-5'>python</b>实现<b class='flag-5'>批量</b>删除文件名中的未知字符

    如何生成实例化模板

      在ISE中,可以很方便地生成RTL模块的实例化模板,Vivado其实也有这个功能,只是要通过Tcl命令实现,而且这个命令隐藏的比较深。以Vivado 2020.2为例,在菜单下选择Tools
    的头像 发表于 12-30 16:23 4375次阅读

    python实验指导书模板讲解

    python实验指导书模板讲解免费下载。
    发表于 05-25 14:39 11次下载

    如何在VScode中自动生成Verilog仿真文件

    一、实现功能 1、可以自动创建文件夹 2、根据Verilog文件自动生成测试文件模板(TB文件名字是) 3、自动打开
    的头像 发表于 06-23 17:48 3476次阅读

    软件需求文档模板

    软件需求文档模板
    发表于 12-08 15:51 10次下载
    软件需求<b class='flag-5'>文档</b><b class='flag-5'>模板</b>

    如何使用Python自动生成请假条

    ,前段时间收集了公司各个部门的请假信息汇总表。 现在你需要根据表格中每个人的信息依次生成各自的请假。 需求的特殊性在于没有现成的模板,因此需要在代码中同时完成模板的制作和文字、段落样式设计。 比较复杂的文字版面更建议直接设计好
    的头像 发表于 01-14 11:39 886次阅读
    如何使用<b class='flag-5'>Python</b><b class='flag-5'>自动</b><b class='flag-5'>生成</b>请假条

    Python怎么批量生成PDF文档

    这种模板套用的场景下,使用Python进行自动化就尤为方便,用最短的时间办最高效的事。 今天就给大家讲讲如何用
    的头像 发表于 02-28 10:11 1127次阅读
    <b class='flag-5'>Python</b>怎么<b class='flag-5'>批量</b><b class='flag-5'>生成</b><b class='flag-5'>PDF</b><b class='flag-5'>文档</b>

    何用Python自动套用模板批量生成PDF文档

    办最高效的事。 今天就给大家讲讲如何用Python自动套用模板批量
    的头像 发表于 10-31 10:56 1556次阅读
    如<b class='flag-5'>何用</b><b class='flag-5'>Python</b><b class='flag-5'>自动</b><b class='flag-5'>套用</b><b class='flag-5'>模板</b><b class='flag-5'>批量</b><b class='flag-5'>生成</b><b class='flag-5'>PDF</b><b class='flag-5'>文档</b>

    何用Python批量定制化发送邮件

    一封精美的元旦祝福邮件,但是邮件的内容——比如姓名、祝福语等应该怎样动态渲染呢?答案是jinja2. jinja2 是一个Python模板引擎,使用jinja2,我们能够在邮件HTML中设定占位符,在Python发送邮件的时
    的头像 发表于 11-01 11:32 2203次阅读

    PDF文件批量打印源代码

    压缩包中包含可批量打印PDF文件的Python代码,可以借助PYcharm工具执行,实现多PDF文件同时打印。
    发表于 08-08 14:26 0次下载