這個(gè)自動(dòng)化利器,Pythoner都在用!
在之前文章中,介紹了一款將網(wǎng)頁轉(zhuǎn)換成 PDF 的神器——wkhtmltopdf。在不同的操作系統(tǒng)中安裝這個(gè)小巧的軟件,就可以通過命令行直接將網(wǎng)頁轉(zhuǎn)換成 PDF 和圖片。
有小伙伴說這種處理方式跟用插件沒什么區(qū)別,而且很不 Python!
于是,我去找了下,發(fā)現(xiàn) wkhtmltopdf 這款軟件有一個(gè)對(duì)應(yīng)的 Python 版本的包——pdfkit。
今天我們就來看看這個(gè)包可以幫助我們做什么。
pdfkit 是什么
pdfkit 是把 HTML+CSS 格式的文件轉(zhuǎn)換成 PDF 的一種工具,它是 wkhtmltopdf 這個(gè)工具包的 python 封裝。所以,我們使用 pdfkit 之前要先安裝 wkhtmltopdf 。具體安裝方法很簡(jiǎn)單,大家可以參照上篇文章。
pdfkit 安裝
安裝完 wkhtmltopdf 之后,我們?cè)賮戆惭b pdfkit:
- pip install pdfkit
跟安裝其他 python 包一樣,只需要使用 pip 安裝就行。
pdfkit 應(yīng)用
pdfkit 是基于 wkhtmltopdf 的封裝,所以功能肯定也是基于 wkhtmltopdf 的。
URL 對(duì)應(yīng)網(wǎng)頁轉(zhuǎn) PDF
我們先來看一個(gè)例子:
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)
例子很簡(jiǎn)單,就三行代碼。
第一行是 wkhtmltopdf 軟件安裝目錄的 bin 目錄地址;
第二行是將這個(gè)目錄地址傳入 pdfkit 的配置中;
第三行就是傳入網(wǎng)頁 URL 和生成文件的目標(biāo)地址,傳入配置信息,然后就可以生成 PDF 了。
運(yùn)行之后,生成的 PDF 文件是這樣的:
HTML 文件轉(zhuǎn) PDF
這個(gè)方法也很簡(jiǎn)單,跟上一個(gè)類似,只需要將 pdfkit 調(diào)用的函數(shù)改一下即可:
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 函數(shù)。這里我傳入的是一個(gè)簡(jiǎn)單的分頁頁面,生成的 PDF 文件如下:
字符串轉(zhuǎn) PDF
如果你手中有大量的文檔需要轉(zhuǎn) PDF 文件,比如說下載了很多部小說。這時(shí)候可以使用 pdfkit 的字符串轉(zhuǎn) PDF 功能,批量操作,進(jìn)行轉(zhuǎn)化。
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)
運(yùn)行這段代碼,生成 PDF 文件如下:
總結(jié)
本文介紹了一款輕量級(jí)的三方包——pdfkit,可以將 URL 對(duì)應(yīng)的網(wǎng)頁、HTML 文件和字符串轉(zhuǎn)成 PDF 文件。
有人會(huì)問:有什么用?這些直接用軟件操作,很容易就解決了。
當(dāng)然,對(duì)于少量的單線程操作,確實(shí)沒必要寫代碼,使用軟件反而更快更好。但是,設(shè)想一下,如果你通過爬蟲爬取了很多頁面,想要將這些頁面轉(zhuǎn)成 PDF 文件保存,這時(shí)候直接寫轉(zhuǎn)換程序,然后和爬蟲程序結(jié)合,是不是更好更高效?
像這些小工具,功能雖然簡(jiǎn)單,但是在合適的時(shí)候使用,會(huì)大大提高你的效率,平時(shí)積累一下,關(guān)鍵時(shí)刻才可以靈活運(yùn)用!