在日常中有時需將 html 檔案轉換為 pdf、word 檔案。網上免費的大多數不支援多個檔案轉換的情況,而且在轉換幾個後就開始收費了。
轉 pdf轉 pdf 中使用 pdfkit 庫,它可以讓 web 網頁直接轉為 pdf 檔案,多個 url 可以合併成一個檔案。
安裝 pdfkit 庫
pip3 install pdfkit
安裝 wkhtmltopdf 檔案
pdfkit 是基於 wkhtmltopdf 的 python 封裝庫,所以需要安裝 wkhtmltopdf 軟體。
下載地址:https://wkhtmltopdf.org/downloads.html
在windows 系統中,需要將 wkhtmltopdf.exe 檔案路徑配置在系統環境變數中。
url 生成 pdf
這裡使用 baidu 首頁和 bing 首頁作為示例
import pdfkit# 第一個引數可以是列表,放入多個域名,第二個引數是生成的 PDF 名稱pdfkit.from_url(['www.baidu.com','www.bing.com'],'search.pdf')
本地 html 檔案生成 pdf
提前將需要轉換的 html 儲存到本地,也可以使用 python 爬蟲程式碼抓取 html 檔案到本地。
import pdfkitpdfkit.from_file('/Users/xx/Desktop/html/baidu.html', 'search.pdf')
轉 word
使用 pypandoc 庫將 html 轉換為 word 檔案,pypandoc 是一個支援多種檔案格式轉換的 Python 庫,它用到了 pandoc 軟體,所以需要在電腦上安裝 pandoc 軟體
安裝 pypandoc 庫
pip install pypandoc
安裝 pandoc 軟體
pypandoc 是基於 pandoc 軟體的庫,所以要安裝一下 pandoc (https://github.com/jgm/pandoc/releases/tag/2.11.4),pandoc 支援多種型別轉換。下圖是 pandoc 的轉換型別。
使用
將 html 檔案提前儲存在本地,也可以用爬蟲將需要轉換的 html 檔案在程式碼中抓取後使用。
import pypandoc# convert_file('原檔案','目標格式','目標檔案')output = pypandoc.convert_file('/Users/xx/Desktop/html/baidu.html', 'docx', outputfile="baidu.doc")
pypandoc 無法對 word 進行排版,所以需要小夥伴們進行 2 次排版。
總結利用好 Python 第三方庫類,可以為小夥伴寫出各種個性化定製的小程式