這個自動化利器,Pythoner都在用!
在之前文章中,介紹了一款將網頁轉換成 PDF 的神器——wkhtmltopdf。在不同的操作系統中安裝這個小巧的軟件,就可以通過命令行直接將網頁轉換成 PDF 和圖片。
有小伙伴說這種處理方式跟用插件沒什么區別,而且很不 Python!
于是,我去找了下,發現 wkhtmltopdf 這款軟件有一個對應的 Python 版本的包——pdfkit。
今天我們就來看看這個包可以幫助我們做什么。
pdfkit 是什么
pdfkit 是把 HTML+CSS 格式的文件轉換成 PDF 的一種工具,它是 wkhtmltopdf 這個工具包的 python 封裝。所以,我們使用 pdfkit 之前要先安裝 wkhtmltopdf 。具體安裝方法很簡單,大家可以參照上篇文章。
pdfkit 安裝
安裝完 wkhtmltopdf 之后,我們再來安裝 pdfkit:
- pip install pdfkit
跟安裝其他 python 包一樣,只需要使用 pip 安裝就行。
pdfkit 應用
pdfkit 是基于 wkhtmltopdf 的封裝,所以功能肯定也是基于 wkhtmltopdf 的。
URL 對應網頁轉 PDF
我們先來看一個例子:
path_wkthmltopdf = r'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe'
config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)
pdfkit.from_url(r'https://zhuanlan.zhihu.com/p/421726412', 'studypython.pdf', configuration=config)
例子很簡單,就三行代碼。
第一行是 wkhtmltopdf 軟件安裝目錄的 bin 目錄地址;
第二行是將這個目錄地址傳入 pdfkit 的配置中;
第三行就是傳入網頁 URL 和生成文件的目標地址,傳入配置信息,然后就可以生成 PDF 了。
運行之后,生成的 PDF 文件是這樣的:
HTML 文件轉 PDF
這個方法也很簡單,跟上一個類似,只需要將 pdfkit 調用的函數改一下即可:
path_wkthmltopdf = r'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe'
config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)
pdfkit.from_file(r'C:\Users\xxx\Downloads\ttest\test.html','html.pdf', configuration=config)
可以看到,前兩行一樣,第三行用了 from_file 函數。這里我傳入的是一個簡單的分頁頁面,生成的 PDF 文件如下:
字符串轉 PDF
如果你手中有大量的文檔需要轉 PDF 文件,比如說下載了很多部小說。這時候可以使用 pdfkit 的字符串轉 PDF 功能,批量操作,進行轉化。
path_wkthmltopdf = r'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe'
config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)
pdfkit.from_string('talk is cheap, show me your code!','str.pdf', configuration=config)
運行這段代碼,生成 PDF 文件如下:
總結
本文介紹了一款輕量級的三方包——pdfkit,可以將 URL 對應的網頁、HTML 文件和字符串轉成 PDF 文件。
有人會問:有什么用?這些直接用軟件操作,很容易就解決了。
當然,對于少量的單線程操作,確實沒必要寫代碼,使用軟件反而更快更好。但是,設想一下,如果你通過爬蟲爬取了很多頁面,想要將這些頁面轉成 PDF 文件保存,這時候直接寫轉換程序,然后和爬蟲程序結合,是不是更好更高效?
像這些小工具,功能雖然簡單,但是在合適的時候使用,會大大提高你的效率,平時積累一下,關鍵時刻才可以靈活運用!