Python 创建 PDF 文档

618 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第24天,点击查看活动详情

前言

在日常工作和学习中,PDF 文件通常是文档共享和打印的最常见格式之一。PDF 文档的主要特点是它们准确地定义了文档的外观和打印方式,并且在 PDF 文档生成后内容便无法编辑,即它们是只读的,这使得 PDF 格式可以非常方便、直观地用于传输信息。

Python 创建 PDF 文档

在本节中,我们学习如何使用 Python 创建一个简单的 PDF 文档。

为了创建 PDF 文档,我们需要使用 fpdf 模块,fpdf 模块可以用于创建 PDF 文档并允许我们在其中写入内容,fpdf 库的安装和其它第三方库完全一样:

$ pip install fpdf

首先,导入 fpdf 模块:

>>> import fpdf

创建一个文档:

>>> document = fpdf.FPDF()

由于 PDF 文档的特殊性,在 PDF 文档中写入内容,我们可以想象一个光标在文档中写入内容并在写入完成后移动到下一个位置,这种方式类似于打字机。

定义标题的字体和颜色,并添加第一页。将内容写入 PDF 文档时,第一个操作是指定要使用的字体和大小,然后添加第一页:

>>> document.set_font('Times', 'B', 15)
>>> document.set_text_color(3, 101, 100)
>>> document.add_page()

在以上代码中,第一个单词使用了粗体(使用 set_font 方法的第二个参数,'B'),并且使用了相对较大的字号,用于明确指示其为一个标题,然后使用 set_text_color 方法设置颜色,其接受一个使用 RGB 标准色值的值。文本也可以使用 I 设置为斜体样式,或者使用 U 进行下划线,除此之外,我们也可以将它们组合起来,例如,使用 BI 生成粗体和斜体文本。

在 PDF 文档中写入文档标题:

>>> document.cell(0, 5, 'Convolutional NDeural Networks')
>>> document.ln()

PDF 文档中输入第一段文本:

>>> document.set_font('Times', '', 11)
>>> document.set_text_color(0)
>>> document.multi_cell(0, 5, 'For all the algorithms described in this section. ' * 12)
[]
>>> document.ln()

使用 cell 方法可以创建一个带有指定文本的文本框,前两个参数分别用于设置文本框的宽度和高度。宽度为 0 表示使用文档的整个空间,需要注意的是,高度需要足以容纳所设定的字体。使用 ln 方法可以创建一个新行。要输入具有多行文本的段落,需要使用 multi_cell 方法,其参数与 cell 相同。

在 PDF 文档中再写入一个新的段落:

>>> document.multi_cell(0, 5, 'The label spreading algorithm is another semi-supervised shallow embedding algorithm. ' * 25)
[]

普通段落中的文字与标题采用不同的样式,以区分标题和正文。set_text_color 方法使用单个参数调用以设置灰度颜色,其中,0 表示黑色,1 表示白色。

将编写完成的 PDF 文档保存在本地:

>>> document.output('document.pdf')
''

检查保存完成的 document.pdf 文件:

document.pdf