使用Python将HTML快速转换成PDF

2023-12-16 04:49:58

大家好,在Web开发和报告任务中,将HTML内容转换为PDF是一种常见需求。Python作为一个庞大的生态系统,提供了各种库来完成这个任务。本文将指导完成使用Python将HTML转换为PDF的过程,包括一个示例实现和一个单元测试。我们将使用pdfkit库,该库是wkhtmltopdf命令行工具的Python封装。

要开始学习,需要在系统中已安装Python,并使用pip安装pdfkit库:

pip?install?pdfkit

下面是具体的4个操作步骤。?

1.设置项目

  • 为项目创建一个新目录。

  • 创建一个用于PDF转换代码的Python文件,例如html_to_pdf.py

  • 可选择为测试创建一个单独的目录。

2.编写HTML到PDF转换代码

html_to_pdf.py中,编写以下函数:

import?pdfkit

def?convert_html_to_pdf(source_html,?output_filename):
????pdfkit.from_string(source_html,?output_filename)
????return?output_filename

这个函数convert_html_to_pdf,以字符串形式接收HTML内容和输出文件名,然后使用pdfkit生成一个PDF文件。

3.创建使用示例

创建一个示例来演示转换:

#?example.py
from?html_to_pdf?import?convert_html_to_pdf

html_content?=?"
Hello?World
"
pdf_filename?=?"output.pdf"

convert_html_to_pdf(html_content,?pdf_filename)

运行example.py将把指定的HTML内容转换为名为output.pdf的PDF文件。

4.编写单元测试

创建一个测试文件test_html_to_pdf.py

import?unittest
import?os
from?html_to_pdf?import?convert_html_to_pdf

class?TestHtmlToPdf(unittest.TestCase):
????def?test_html_to_pdf_conversion(self):
????????html_content?=?"
Test?PDF

"
????????output_filename?=?"test.pdf"

????????result?=?convert_html_to_pdf(html_content,?output_filename)
????????
????????self.assertTrue(os.path.exists(result))
????????self.assertEqual(result,?output_filename)
????????
????????#?清理
????????os.remove(output_filename)

if?__name__?==?'__main__':
????unittest.main()

这个单元测试检查PDF文件是否已创建并存储在指定位置。

使用以下命令运行测试:

python?-m?unittest?test_html_to_pdf

综上,在Python中将HTML转换为PDF使用pdfkitwkhtmltopdf等工具是高效且实用的,此功能对于网络爬虫、报告生成和将网页转换为可打印格式都非常有用。单元测试的集成确保了转换代码的可靠性,使其成为Python项目的一个强大组成部分。?

文章来源:https://blog.csdn.net/csdn1561168266/article/details/135027084
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。