如何利用Python將html轉(zhuǎn)為pdf、word文件
前言
在日常中有時(shí)需將 html 文件轉(zhuǎn)換為 pdf、word 文件。網(wǎng)上免費(fèi)的大多數(shù)不支持多個(gè)文件轉(zhuǎn)換的情況,而且在轉(zhuǎn)換幾個(gè)后就開始收費(fèi)了。

轉(zhuǎn) pdf
轉(zhuǎn) pdf 中使用 pdfkit 庫,它可以讓 web 網(wǎng)頁直接轉(zhuǎn)為 pdf 文件,多個(gè) url 可以合并成一個(gè)文件。
安裝 pdfkit 庫
pip3 install pdfkit
安裝 wkhtmltopdf 文件
pdfkit 是基于 wkhtmltopdf 的 python 封裝庫,所以需要安裝 wkhtmltopdf 軟件。

在windows 系統(tǒng)中,需要將 wkhtmltopdf.exe 文件路徑配置在系統(tǒng)環(huán)境變量中。
url 生成 pdf
這里使用 baidu 首頁和 bing 首頁作為示例
import pdfkit # 第一個(gè)參數(shù)可以是列表,放入多個(gè)域名,第二個(gè)參數(shù)是生成的 PDF 名稱 pdfkit.from_url(['www.baidu.com','www.bing.com'],'search.pdf')

本地 html 文件生成 pdf
提前將需要轉(zhuǎn)換的 html 存儲(chǔ)到本地,也可以使用 python 爬蟲代碼抓取 html 文件到本地。
import pdfkit
pdfkit.from_file('/Users/xx/Desktop/html/baidu.html', 'search.pdf')轉(zhuǎn) word
使用 pypandoc 庫將 html 轉(zhuǎn)換為 word 文件,pypandoc 是一個(gè)支持多種文件格式轉(zhuǎn)換的 Python 庫,它用到了 pandoc 軟件,所以需要在電腦上安裝 pandoc 軟件
安裝 pypandoc 庫
pip install pypandoc
安裝 pandoc 軟件
pypandoc 是基于 pandoc 軟件的庫,所以要安裝一下 pandoc (https://github.com/jgm/pandoc/releases/tag/2.11.4),pandoc 支持多種類型轉(zhuǎn)換。下圖是 pandoc 的轉(zhuǎn)換類型。

使用
將 html 文件提前存儲(chǔ)在本地,也可以用爬蟲將需要轉(zhuǎn)換的 html 文件在代碼中抓取后使用。
import pypandoc
# convert_file('原文件','目標(biāo)格式','目標(biāo)文件')
output = pypandoc.convert_file('/Users/xx/Desktop/html/baidu.html', 'docx', outputfile="baidu.doc")pypandoc 無法對 word 進(jìn)行排版,所以需要小伙伴們進(jìn)行 2 次排版。

補(bǔ)充:用python把pdf文件轉(zhuǎn)換為word文件
安裝pip install pdf2docx:
pip install pdf2docx
如果安裝過程出現(xiàn)報(bào)錯(cuò),可能是版本匹配問題,先安裝PyMuPDF這個(gè)庫即可正常安裝pip install PyMuPDF。
pip install PyMuPDF
安裝好后,把需要轉(zhuǎn)換的PDF文檔放到和python代碼同一個(gè)文件夾內(nèi)。
python代碼:
import os
from pdf2docx import Converter
def pdf_docx():
# 獲取當(dāng)前工作目錄
file_path = os.getcwd()
# 獲取所有文件
files = os.listdir(file_path)
# 遍歷所有文件
for file in files:
# 過濾臨時(shí)文件
if '~$' in file:
continue
# 過濾非pdf格式文件
if file.split('.')[-1] != 'pdf':
continue
# 獲取文件名稱
file_name = file.split('.')[0]
# pdf文件名稱
pdf_name = os.getcwd() + '\\' + file
# docx文件名稱
docx_name = os.getcwd() + '\\' + file_name + '.docx'
# 加載pdf文檔
cv = Converter(pdf_name)
cv.convert(docx_name, start=0, end=12)
cv.close()
if __name__ == '__main__':
pdf_docx()start是pdf轉(zhuǎn)換的起始頁,end是結(jié)束頁。如果不傳入start和end這兩個(gè)參數(shù),默認(rèn)就是從第一頁轉(zhuǎn)換到最后一頁。也可以通過pages方法確定轉(zhuǎn)換頁數(shù),方法為:cv.convert(docx_file, pages=[0,2, 5])
總結(jié)
利用好 Python 第三方庫類,可以為小伙伴寫出各種個(gè)性化定制的小程序
到此這篇關(guān)于如何利用Python將html轉(zhuǎn)為pdf、word文件的文章就介紹到這了,更多相關(guān)Python將html轉(zhuǎn)pdf word內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python高效將PDF轉(zhuǎn)換為HTML的實(shí)用指南
- Python高效實(shí)現(xiàn)HTML轉(zhuǎn)為Word和PDF
- Python將PDF轉(zhuǎn)換為HTML的實(shí)現(xiàn)方法
- Python將HTML快速轉(zhuǎn)換成PDF的方法實(shí)現(xiàn)
- python 將html轉(zhuǎn)換為pdf的幾種方法
- Python實(shí)現(xiàn)html轉(zhuǎn)換為pdf報(bào)告(生成pdf報(bào)告)功能示例
- Python實(shí)現(xiàn)將HTML轉(zhuǎn)成PDF的方法分析
- Python自動(dòng)化實(shí)現(xiàn)將PDF文檔高效轉(zhuǎn)換為HTML文件
相關(guān)文章
pytorch: Parameter 的數(shù)據(jù)結(jié)構(gòu)實(shí)例
今天小編就為大家分享一篇pytorch: Parameter 的數(shù)據(jù)結(jié)構(gòu)實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
python實(shí)現(xiàn)企業(yè)微信定時(shí)發(fā)送文本消息的示例代碼
這篇文章主要介紹了python實(shí)現(xiàn)企業(yè)微信定時(shí)發(fā)送文本消息的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Pyqt5 實(shí)現(xiàn)跳轉(zhuǎn)界面并關(guān)閉當(dāng)前界面的方法
今天小編就為大家分享一篇Pyqt5 實(shí)現(xiàn)跳轉(zhuǎn)界面并關(guān)閉當(dāng)前界面的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
使用pandas讀取表格數(shù)據(jù)并進(jìn)行單行數(shù)據(jù)拼接的詳細(xì)教程
這篇文章主要介紹了使用pandas讀取表格數(shù)據(jù)并進(jìn)行單行數(shù)據(jù)拼接的詳細(xì)教程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
np.concatenate()函數(shù)數(shù)組序列參數(shù)的實(shí)現(xiàn)
本文主要介紹了np.concatenate()函數(shù)數(shù)組序列參數(shù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
解決pytorch多GPU訓(xùn)練保存的模型,在單GPU環(huán)境下加載出錯(cuò)問題
這篇文章主要介紹了解決pytorch多GPU訓(xùn)練保存的模型,在單GPU環(huán)境下加載出錯(cuò)問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
python時(shí)間與Unix時(shí)間戳相互轉(zhuǎn)換方法詳解
這篇文章主要介紹了python時(shí)間與Unix時(shí)間戳相互轉(zhuǎn)換方法詳解,需要的朋友可以參考下2020-02-02

