极速转换,4步学会用Python将HTML转换成PDF

全面介绍如何用Python将HTML转换为PDF文件。

微信搜索关注《Python学研大本营》,加入读者群,分享更多精彩

图片

一、简介

图片

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

二、前提条件

要开始学习,需要:

  • 在系统中已安装Python。可以从Python官方网站(https://www.python.org/)下载。

  • 使用pip安装pdfkit库:

pip install pdfkit
  • wkhtmltopdfpdfkit依赖于它。可以从wkhtmltopdf的网站(https://wkhtmltopdf.org/)下载。

  • 一个测试库unittest,它包含在Python的标准库中。

三、具体步骤

步骤1:设置项目

  1. 为项目创建一个新目录。

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

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

步骤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项目的一个强大组成部分。

推荐书单

《Python网络爬虫从入门到精通》

《Python网络爬虫从入门到精通》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Python实现网络爬虫开发应该掌握的技术。全书共分19章,内容包括初识网络爬虫、了解Web前端、请求模块urllib、请求模块urllib3、请求模块requests、高级网络请求模块、正则表达式、XPath解析、解析数据的BeautifulSoup、爬取动态渲染的信息、多线程与多进程爬虫、数据处理、数据存储、数据可视化、App抓包工具、识别验证码、Scrapy爬虫框架、Scrapy_Redis分布式爬虫、数据侦探。书中所有知识都结合具体实例进行介绍,涉及的程序代码给出了详细的注释,读者可轻松领会网络爬虫程序开发的精髓,快速提高开发技能。

《Python网络爬虫从入门到精通》icon-default.png?t=N7T8https://item.jd.com/13291912.html

图片

精彩回顾

《文本抓取利器,Python和Beautiful Soup爬虫助你事半功倍》

《基于Python和Surprise库,新手也能动手搭建推荐系统》

《仅需10行代码,用Python创建语音模拟器》

《PyCharm编辑器结合Black插件,轻松实现Python代码格式化》

《金融量化交易初探,使用Python实现遗传算法》

《Python GUI初学者教程,轻松构建用户界面》

微信搜索关注《Python学研大本营》,加入读者群,分享更多精彩

访问【IT今日热榜】,发现每日技术热点

  • 31
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值