非常不错!来教你用 Python 批量生成 PDF 文档

admin 2023年8月5日12:48:57评论15 views字数 1615阅读5分23秒阅读模式
这是「进击的Coder」的第 495 篇技术分享
作者:Ckend
来源:Python 实用宝典

阅读本文大概需要 4 分钟。



日常办公中,经常会使用 PDF 文档,难免需要对 PDF 文档进行编辑,有时候 PDF 文档中的大部分内容都是一样的,只是发送对象不同。

这种模板套用的场景下,使用 Python 进行自动化就尤为方便,用最短的时间办最高效的事。

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

非常不错!来教你用 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. 支持压缩

一个最简单的生成示例:

非常不错!来教你用 Python 批量生成 PDF 文档


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

非常不错!来教你用 Python 批量生成 PDF 文档

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

非常不错!来教你用 Python 批量生成 PDF 文档


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

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

非常不错!来教你用 Python 批量生成 PDF 文档


cell 还有2个参数:

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

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

非常不错!来教你用 Python 批量生成 PDF 文档

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

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

非常不错!来教你用 Python 批量生成 PDF 文档


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

非常不错!来教你用 Python 批量生成 PDF 文档


真的是非常方便。


3.批量生成 PDF



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

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

非常不错!来教你用 Python 批量生成 PDF 文档


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

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

非常不错!来教你用 Python 批量生成 PDF 文档


最终效果如下:

非常不错!来教你用 Python 批量生成 PDF 文档

完整源代码可在公众号后台回复:批量生成pdf 下载

非常不错!来教你用 Python 批量生成 PDF 文档

End

「进击的Coder」专属学习群已正式成立,搜索「CQCcqc4」添加崔庆才的个人微信或者扫描下方二维码拉您入群交流学习。


非常不错!来教你用 Python 批量生成 PDF 文档

看完记得关注@进击的Coder
及时收看更多好文
↓↓↓


崔庆才的「进击的Coder」知识星球已正式成立,感兴趣的可以查看《我创办了一个知识星球》了解更多内容,欢迎您的加入:


非常不错!来教你用 Python 批量生成 PDF 文档


好文和朋友一起看~

原文始发于微信公众号(进击的Coder):非常不错!来教你用 Python 批量生成 PDF 文档

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年8月5日12:48:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   非常不错!来教你用 Python 批量生成 PDF 文档https://cn-sec.com/archives/592942.html

发表评论

匿名网友 填写信息