如何將網站儲存為PDF

很多公眾號提供功能,可以將你需要的公眾號內容變為PDF,方便閱讀和收藏,

用著挺方便,微信公眾號的文章為PDF,網站內容匯出為PDF,這些是怎麼來的?

下面就進行揭祕,從安裝到應用,都詳細的告訴你,如果你能跟著一起動手學習,

相信以後你也能開發出適合屬於自己的一款強大工具出來。現在隆重介紹,Python-PDFKit:轉化HTML成PDF利器!

這個Python庫基於wkhtmltopdf應用程式包,並提供了Python 2和3封裝,相容2種不同版本的Python。該庫基於Webkit將HTML轉換為PDF。

安裝

首先需要安裝基礎框架wkhtmltopdf:

  1. 安裝wkhtmltopdf:
  • 於Debian / Ubuntu:

$ sudo apt-get install wkhtmltopdf

   

  • 蘋果MAC系統:

$ brew install caskroom / cask / wkhtmltopdf

   

警告!debian / ubuntu repos中的版本減少了功能(因為它編譯時沒有使用wkhtmltopdf QT補丁),例如新增輪廓,頁首,頁尾,TOC等。要使用此選項,應該從wkhtmltopdf站點下載安裝靜態二進位制檔案。

  • Windows和其他選項:開啟wkhtmltopdf 專案網站,下載安裝二進位制安裝程式。

完畢,就可以安裝python-pdfkit了。

  1. 安裝python-pdfkit:

$ pip install pdfkit(或python3採用pip3 )

   

用法

快速入門,把一個網頁連結,一個靜態網頁等轉成pdf。

import pdfkit pdfkit.from_url(' web link ',' out.pdf ') pdfkit.from_file(' test.html ',' out.pdf ') pdfkit.from_string(' Hello!',' out.pdf ')

   

來個更好玩的,如果要多個頁面合成一個pdf,該咋辦?給你5秒鐘。

好了,答案如下:

pdfkit.from_url([ ' web1 ',' weburl2 ',' http://weburl3 ' ],' out.pdf ') pdfkit.from_file([ 'file1.html ',' file2.html ' ],' out.pdf ')

   

把一個網頁轉成PDF也可以這麼用:

with open(' file.html ')as f:  pdfkit.from_file(f,' out.pdf ')

   

這樣,pdfkit就能完成基本的轉pdf任務了。

如果,要把若干HTML頁面轉成一個pdf,並且定義封面和章節的連結,甚至文件樣式css,怎麼做呢?

toc = {  ' xsl-style-sheet ':' toc.xsl ' } cover = ' cover.html ' pdfkit.from_file(' file.html ',options = options,toc = toc,cover = cover) pdfkit.from_file(' file.html ',options = options,toc = toc,cover = cover,cover_first = True)

   

常見錯誤及解法:

  • IOError: 'No wkhtmltopdf executable found':
  • 確保您的$ PATH中有wkhtmltopdf或通過自定義配置設定。Windows 中的wkhtmltopdf或Linux 上的wkhtmltopdf應返回二進位制的實際路徑。
  • IOError: 'Command Failed'
  • 此錯誤表示PDFKit無法處理輸入。您可以嘗試直接從錯誤訊息執行命令,並檢視導致失敗的錯誤(在某些wkhtmltopdf版本上,這可能是由於分段錯誤導致的)

經過上面的介紹,相信聰明的你,已經掌握了從HTML轉PDF的利器,pdfkit的使用方法。具體的pdfkit專案地址,請關注公眾號python_dada後輸入"pdfkit"獲取。