首頁>技術>

在日常中有時需將 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 第三方庫類,可以為小夥伴寫出各種個性化定製的小程式

15
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 《python演算法訓練2-線性表(1)》程式碼參考