為什麼要寫這篇文章?
因為原本以前的套件pdfkit和wkhtmltopdf很簡單就可以做,但後來發現因為版本更新的關係,發生無法解決的錯誤,故寫下這篇文章給大家參考。
python版本3.7
原本使用套件pdfkit和wkhtmltopdf
照網路上大量文件的說法,應該可以順利產出,但是並沒有。
先做錯誤示範如下:
(用截圖是因為不想大家直接copy, 因為是錯誤示範)
(最下面有正確做法,有提供程式碼給大家copy)
先編一個dataframe,並且確認結果是一張表格
接下來要先裝pdfkit, 記得在jupyter底下要這樣下指令才能裝喔:
然後開始執行產出PDF的語法
先產生html檔,這部分是沒問題的
然後就看到以下錯誤:
我們用wkhtmltopdf看看,先來安裝
執行程式
也是一個莫名奇妙的錯誤
最後找到PyQt4,其實是要用PyQt5,4版連裝都裝不起來
提供可複製貼上的程式碼
# pyqt4不能裝,要改裝pyqt5
import sys
!{sys.executable} -m pip install pyqt5
|
無論如何,算是有裝成功
來執行程式吧!
from PyQt5.QtGui import QTextDocument
from PyQt5.QtWidgets import QApplication
from PyQt5.QtPrintSupport import QPrinter
import sys
app = QApplication(sys.argv)
doc = QTextDocument()
location = "foo.html"
html = open(location).read()
doc.setHtml(html)
printer = QPrinter()
printer.setOutputFileName("foo.pdf")
printer.setOutputFormat(QPrinter.PdfFormat)
printer.setPageSize(QPrinter.A4)
printer.setPageMargins(15, 15, 15, 15, QPrinter.Millimeter)
doc.print_(printer)
print("done!")
|
執行完會秀出一個"done!"訊息。
打開pdf檔
終於成功了!
給各位參考,簡單說,用PyQt5就對了!
留言
張貼留言