Python weasyprint 模块:快速入门

Python weasyprint 模块

WeasyPrint 是一个 Python 库,可以将 HTML 和 CSS 渲染为 PDF 文件。它兼容 Python 3.6 及以上版本,采用使用现代化的 CSS 特性,提供高质量的输出效果。WeasyPrint 的主要设计目标是帮助开发者快速生成 PDF 报告、用户手册和发票等文档,简化了 HTML 转换为 PDF 的流程。

应用场景

WeasyPrint 广泛应用于需要生成 PDF 文档的场景,如:

  • 发票生成:电子商务和财务管理系统使用 WeasyPrint 生成美观的发票 PDF。
  • 报告输出:数据分析和业务报告生成时,可以利用 WeasyPrint 快速将 HTML 报告转换为 PDF 格式。
  • 在线文档:使用 WeasyPrint 将网站或 Web 应用的内容导出为 PDF,便于打印或分享。

安装说明

WeasyPrint 不是 Python 的默认模块,需要通过 pip 进行安装。可以使用以下命令安装:

1
pip install WeasyPrint  # 使用 pip 安装 WeasyPrint 模块

确保你已安装 Cairo 和相关依赖,具体依赖可参考 WeasyPrint 的官方文档。

用法举例

1. 基本用法 - 从 HTML 文件生成 PDF

1
2
3
4
5
6
7
8
9
from weasyprint import HTML  # 导入 HTML 类

# 定义 HTML 文件路径
html_file_path = 'example.html' # HTML 文件路径
# 定义输出 PDF 文件路径
pdf_file_path = 'output.pdf' # 输出 PDF 文件路径

# 使用 WeasyPrint 将 HTML 转换为 PDF
HTML(html_file_path).write_pdf(pdf_file_path) # 生成 PDF

以上代码将指定的 HTML 文件转换为 PDF,生成的文件保存在指定路径。

2. 从字符串生成 PDF

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from weasyprint import HTML  # 导入 HTML 类

# 定义 HTML 字符串
html_content = '''
<html>
<body>
<h1>欢迎使用 WeasyPrint!</h1>
<p>这是一个从字符串生成 PDF 的示例。</p>
</body>
</html>
''' # 构造 HTML 内容

# 定义输出 PDF 文件路径
pdf_file_path = 'output_from_string.pdf' # 指定输出路径

# 使用 WeasyPrint 将 HTML 字符串转换为 PDF
HTML(string=html_content).write_pdf(pdf_file_path) # 从字符串生成 PDF

在这个例子中,我们从一个 HTML 字符串中生成 PDF。这对于动态内容生成非常有用。

3. 添加样式并生成 PDF

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from weasyprint import HTML, CSS  # 导入 HTML 和 CSS 类

# 定义 HTML 内容
html_content = '''
<html>
<head>
<style>
h1 { color: blue; }
p { font-size: 20px; }
</style>
</head>
<body>
<h1>Styled PDF with WeasyPrint</h1>
<p>这段话将以更大的字体显示。</p>
</body>
</html>
''' # 包含 CSS 样式的 HTML 内容

# 定义输出 PDF 文件路径
pdf_file_path = 'styled_output.pdf' # 指定输出路径

# 使用 WeasyPrint 将 HTML 字符串与样式转换为 PDF
HTML(string=html_content).write_pdf(pdf_file_path) # 生成包含样式的 PDF

在此示例中,我们为 HTML 内容添加了一些基本样式,生成的 PDF 文档将包含这些样式。

软件和库版本不断更新

由于软件和库版本不断更新,如果本文档不再适用或有误,请留言或联系我进行更新。让我们一起营造良好的学习氛围。感谢您的支持! - Travis Tang

强烈建议大家关注本人的博客全糖冲击博客,我的博客包含了所有 Python 标准库使用教程,确保您能方便地查询和学习。这不仅能帮助您快速掌握各类 Python 模块的用法,还能提升您的编程能力与效率。我努力提供详尽的示例和清晰的讲解,希望能助您一臂之力!