Python將HTML快速轉(zhuǎn)換成PDF的方法實(shí)現(xiàn)
在Web開發(fā)和報(bào)告任務(wù)中,將HTML內(nèi)容轉(zhuǎn)換為PDF是一種常見需求。Python作為一個(gè)龐大的生態(tài)系統(tǒng),提供了各種庫來完成這個(gè)任務(wù)。本文將指導(dǎo)完成使用Python將HTML轉(zhuǎn)換為PDF的過程,包括一個(gè)示例實(shí)現(xiàn)和一個(gè)單元測(cè)試。我們將使用pdfkit
庫,該庫是wkhtmltopdf
命令行工具的Python封裝。
要開始學(xué)習(xí),需要在系統(tǒng)中已安裝Python,并使用pip
安裝pdfkit
庫:
pip install pdfkit
下面是具體的4個(gè)操作步驟。
1.設(shè)置項(xiàng)目
為項(xiàng)目創(chuàng)建一個(gè)新目錄。
創(chuàng)建一個(gè)用于PDF轉(zhuǎn)換代碼的Python文件,例如
html_to_pdf.py
。可選擇為測(cè)試創(chuàng)建一個(gè)單獨(dú)的目錄。
2.編寫HTML到PDF轉(zhuǎn)換代碼
在html_to_pdf.py
中,編寫以下函數(shù):
import pdfkit def convert_html_to_pdf(source_html, output_filename): pdfkit.from_string(source_html, output_filename) return output_filename
這個(gè)函數(shù)convert_html_to_pdf
,以字符串形式接收HTML內(nèi)容和輸出文件名,然后使用pdfkit
生成一個(gè)PDF文件。
3.創(chuàng)建使用示例
創(chuàng)建一個(gè)示例來演示轉(zhuǎn)換:
# 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)
運(yùn)行example.py
將把指定的HTML內(nèi)容轉(zhuǎn)換為名為output.pdf
的PDF文件。
4.編寫單元測(cè)試
創(chuàng)建一個(gè)測(cè)試文件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()
這個(gè)單元測(cè)試檢查PDF文件是否已創(chuàng)建并存儲(chǔ)在指定位置。
使用以下命令運(yùn)行測(cè)試:
python -m unittest test_html_to_pdf
綜上,在Python中將HTML轉(zhuǎn)換為PDF使用pdfkit
和wkhtmltopdf
等工具是高效且實(shí)用的,此功能對(duì)于網(wǎng)絡(luò)爬蟲、報(bào)告生成和將網(wǎng)頁轉(zhuǎn)換為可打印格式都非常有用。單元測(cè)試的集成確保了轉(zhuǎn)換代碼的可靠性,使其成為Python項(xiàng)目的一個(gè)強(qiáng)大組成部分。
到此這篇關(guān)于Python將HTML快速轉(zhuǎn)換成PDF的方法實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python HTML轉(zhuǎn)換成PDF內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)基于兩張圖片生成圓角圖標(biāo)效果的方法
這篇文章主要介紹了python實(shí)現(xiàn)基于兩張圖片生成圓角圖標(biāo)效果的方法,實(shí)例分析了Python使用pil模塊進(jìn)行圖片處理的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03Python?常用模塊threading和Thread模塊之線程池
這篇文章主要介紹了Python?threading和Thread模塊之線程池,線程池如消費(fèi)者,負(fù)責(zé)接收任務(wù),并將任務(wù)分配到一個(gè)空閑的線程中去執(zhí)行。并不關(guān)心是哪一個(gè)線程執(zhí)行的這個(gè)任務(wù),具體介紹需要的小伙伴可以參考下面文章詳細(xì)內(nèi)容2022-06-06tensorflow之變量初始化(tf.Variable)使用詳解
今天小編就為大家分享一篇tensorflow之變量初始化(tf.Variable)使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02python 統(tǒng)計(jì)代碼耗時(shí)的幾種方法分享
本文實(shí)例講述了Python中統(tǒng)計(jì)代碼片段、函數(shù)運(yùn)行耗時(shí)的幾種方法,分享給大家,僅供參考。2021-04-04python實(shí)現(xiàn)兩張圖片拼接為一張圖片并保存
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)兩張圖片拼接為一張圖片并保存,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07Pandas中DataFrame.head()函數(shù)的具體使用
DataFrame.head()是Pandas庫中一個(gè)非常重要的函數(shù),用于返回DataFrame對(duì)象的前n行,本文主要介紹了Pandas中DataFrame.head()函數(shù)的具體使用,感興趣的可以了解一下2024-07-07python使用tesseract實(shí)現(xiàn)字符識(shí)別功能
Tesseract 是一個(gè)開源的光學(xué)字符識(shí)別(OCR)引擎,它能夠識(shí)別多種語言的文本,可將掃描文檔、圖像中的文字提取并轉(zhuǎn)換為計(jì)算機(jī)可編輯的文本格式,本文給大家介紹了python使用tesseract實(shí)現(xiàn)字符識(shí)別功能,需要的朋友可以參考下2024-10-10python+mysql實(shí)現(xiàn)簡(jiǎn)單的web程序
上篇文章我們介紹了簡(jiǎn)單的Python web程序,實(shí)現(xiàn)hello world,本文我們來結(jié)合一下mysql,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的簡(jiǎn)單操作,希望對(duì)大家有所幫助2014-09-09python實(shí)現(xiàn)獲取序列中最小的幾個(gè)元素
這篇文章主要介紹了python實(shí)現(xiàn)獲取序列中最小的幾個(gè)元素,是非常實(shí)用的技巧,需要的朋友可以參考下2014-09-09