日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

python 將html轉(zhuǎn)換為pdf的幾種方法

瀏覽:63日期:2022-07-01 08:45:58

將 HTML 網(wǎng)頁轉(zhuǎn)換為 PDF 是很多人常見的一個需求,在瀏覽器上,我們可以通過瀏覽器的“打印”功能直接將網(wǎng)頁打印輸出為 PDF。

但是如果有多個網(wǎng)頁就不好辦了。

二進制軟件

網(wǎng)絡(luò)上存在很多將 HTML 轉(zhuǎn)換為 PDF 的軟件和工具。比較著名的有 Carelib、wkhtmltopdf。

whtmltopdf

wkhtmltopdf 真是一個優(yōu)秀的 HTML 轉(zhuǎn)換 PDF 工具。其借助 Qt 的 WebKit 渲染引擎,將 HTML 文檔渲染導(dǎo)出為 PDF 文檔或圖像。

python 將html轉(zhuǎn)換為pdf的幾種方法

功能十分完善,但是由于使用的渲染引擎是 Qt 的 WebKit,其沒法對 ES6 的 JavaScript 代碼提供支持,導(dǎo)致一些采用 ES6 編寫的 HTML 頁面渲染不出實際的效果來,導(dǎo)致州的先生最終放棄了它。

Carelib

Carelib 是一個電子書管理軟件,其中提供了各類文檔的轉(zhuǎn)換工具,所以可以借助其電子書轉(zhuǎn)換工具來實現(xiàn) HTMl 到 PDF 的轉(zhuǎn)換。

這些都是用于桌面環(huán)境的二進制軟件,如果要在 Python 中使用,要么使用 Popen() 方法調(diào)用這些二進制軟件的命令,要么使用一些第三方的封裝模塊,比如:pdfkit、pypandoc 等,這些第三方模塊通過集成調(diào)用上述二進制軟件,封裝了一些方便 Python 調(diào)用的接口。

純 Python 庫實現(xiàn)

上面介紹的那些 Python 第三方模塊雖然可以很好的進行 HTML 到 PDF 的轉(zhuǎn)換工作,但是都需要額外在計算機上安裝其他的二進制軟件,很多小伙伴并不喜歡這種調(diào)用方式。

不依賴于二進制軟件的實現(xiàn),有如下的方案:

xhtml2pdf

這是一個基于 ReportLab、html5lib、PyPDF2 等 Python 模塊構(gòu)建的 HTML 到 PDF 轉(zhuǎn)換模塊。能夠很好的支持 HTML5 、CSS2.1 和部分 CSS3 語法。

因為是基于 Report Lab 模塊進行的開發(fā),其對中文的支持在某些環(huán)境下會有問題。而且由于開發(fā)人員的變更,模塊的功能出現(xiàn)了一些斷層。但是仍然是一個非常棒的 HTML 轉(zhuǎn) PDF 模塊。

weasyprint

這是一個用于 HTML 和 CSS 的可視化渲染引擎,可以將 HTML 文檔導(dǎo)出為打印標(biāo)準(zhǔn)的 PDF 文件。

xhtml2pdf 模塊也曾推薦使用這個模塊來進行 HTML 轉(zhuǎn)換 PDF 的工作。

這個模塊功能很強大、效果很出色,但是,模塊的依賴項太多了:

python 將html轉(zhuǎn)換為pdf的幾種方法

州的先生至今沒有在 Windows 電腦上安裝成功過!

瀏覽器方案

在上述兩種方案中,二進制程序的可控制性稍有不足,而純 Python 實現(xiàn)的渲染解析則在功能上和依賴上不是有友好。

處理上述兩種方案,我們還能采用第三種方式進行 HTMl 到 PDF 的轉(zhuǎn)換。那就是借助 Web 自動化測試的瀏覽器內(nèi)核和 Qt for Python 的 Web 引擎 來實現(xiàn)。

Web 自動化的瀏覽器內(nèi)核

使用 Python 的小伙伴經(jīng)常會使用 Selenium、pyppeteer 這兩個 Web 自動化測試的模塊來進行數(shù)據(jù)采集和 Web 自動化測試工作。

這兩個模塊都是用來驅(qū)動一個真實的瀏覽器來進行網(wǎng)頁的操作。正是基于此,我們可以調(diào)用瀏覽器中打印相關(guān)的 API 接口,來實現(xiàn) HTML 轉(zhuǎn) PDF 的功能。

例如,在 pyppeteer 中可以按照下面示例的方式,打開一個 HTML 文檔,然后將其轉(zhuǎn)換為 PDF 文檔:

python 將html轉(zhuǎn)換為pdf的幾種方法

Qt 的 Web 引擎

在 Qt5 中,Qt 使用新的 Chromium 內(nèi)核代替了老舊的 WebKit 作為 Web 的渲染引擎。使得在 Qt 中進行可以現(xiàn)代化的瀏覽器開發(fā)。

借助于 Qt 的 Python 實現(xiàn)(PyQt5 系列 和 PySide2 系列),我們可以直接調(diào)用 Qt 中的 Web 引擎相關(guān)的接口。

其中 QtWebEngineWidgets 子模塊中的 QWebEngineView() 類提供了 printToPdf 方法供我們將網(wǎng)頁打印為 PDF 文檔,所以基于此,我們也可以使用 PyQt5 或 PySide2 進行 HTML 轉(zhuǎn)換 PDF,示例如下所示:

python 將html轉(zhuǎn)換為pdf的幾種方法

最后

在上面,州的先生介紹了 3 種在 Python 中轉(zhuǎn)換 HTML 文檔為 PDF 文檔的方案,每種方案都有各自的優(yōu)勢和不足,正確地評估自己的需求然后選擇合適的方案,也能彌補其不足。

以上就是python 將html轉(zhuǎn)換為pdf的幾種方法的詳細(xì)內(nèi)容,更多關(guān)于python 將html轉(zhuǎn)換為pdf的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲精品美女91| 婷婷六月综合| 欧美日韩一二| 亚洲深夜福利在线观看| 另类中文字幕国产精品| 欧美91在线| 一区二区三区四区日韩| 欧美日韩第一| 日本欧美不卡| 97精品一区| 国产成人精品三级高清久久91| 精品国产三区在线| 精品视频自拍| av在线资源| 日韩三区免费| 亚洲特色特黄| 国产精品毛片| 亚洲精品在线国产| 亚洲va久久久噜噜噜久久| 日本亚州欧洲精品不卡| 日本免费一区二区视频| 国产精品红桃| 成人福利av| 国产一区欧美| 蜜臀av一区二区在线免费观看| 亚洲v天堂v手机在线| 欧美在线日韩| 成午夜精品一区二区三区软件| 欧美日韩国产v| 欧美日韩精品一本二本三本| 麻豆亚洲精品| 国产精品久久久久久久久久久久久久久| 久久精品国产一区二区| 麻豆成全视频免费观看在线看| 99精品视频在线| 羞羞答答国产精品www一本| 日韩精品久久理论片| 国产专区精品| 妖精视频成人观看www| 亚洲精品福利| 国内一区二区三区| 亚洲黄页一区| 国产日韩1区| 日韩精品水蜜桃| 中文字幕亚洲精品乱码| 你懂的国产精品永久在线| 日韩三区在线| 亚洲精品一级| 国产精品一区二区三区av| 午夜精品成人av| 亚洲综合日本| 精品中文在线| 亚洲一区二区三区高清| 国产精品国码视频| 亚洲精品91| 奇米色欧美一区二区三区| 日韩精品不卡一区二区| 蜜臀va亚洲va欧美va天堂| 国产一区二区三区久久| 日韩一区精品视频| 精品色999| 免费在线观看精品| 成人综合一区| 免费日韩av片| 精品国产亚洲日本| 蜜臀久久99精品久久久久久9| 精品国产18久久久久久二百| 国产精品91一区二区三区| 国产欧美日本| 日韩午夜高潮| 国产精品magnet| 亚洲少妇在线| 美女高潮久久久| 麻豆精品91| 91中文字幕精品永久在线| 日韩中文字幕一区二区高清99| 日韩欧美看国产| 日本成人手机在线| 亚洲美女久久精品| 亚洲三级av| 伊人精品一区| 国产在线一区不卡| 日韩精品成人| 视频一区中文| 国内在线观看一区二区三区| 少妇精品久久久| 99久久九九| 国际精品欧美精品| 日韩国产高清在线| 亚洲欧美日韩国产一区| 日韩在线综合| 美女久久精品| 日韩动漫一区| 亚洲电影在线一区二区三区| 福利在线一区| 免费在线观看一区| 欧美日韩中出| 色综合视频一区二区三区日韩 | 日韩影院在线观看| 日韩av一级| 91精品在线免费视频| 国产精品女主播一区二区三区| 欧美日韩视频免费观看| 欧美a一区二区| 国产亚洲精品美女久久| 亚洲日本免费电影| 天堂成人国产精品一区| 欧美另类综合| 国产综合亚洲精品一区二| 色综合五月天| 麻豆中文一区二区| 国产情侣一区| 欧美日韩精品一区二区三区视频 | 日韩精品乱码av一区二区| 樱桃成人精品视频在线播放| 色爱av综合网| 亚洲精品88| 国产精品二区不卡| 久久在线91| 欧美成a人片免费观看久久五月天| 亚洲精一区二区三区| 亚洲欧美日韩国产一区| 在线亚洲精品| 亚洲一区区二区| 免费视频久久| 久久国产66| 亚洲精品高潮| 亚洲人成亚洲精品| 亚洲性视频在线| 国产精品观看| 欧美日本三区| 国产精品入口久久| 久久毛片亚洲| 三级欧美在线一区| 精品三级av| 荡女精品导航| 国产一区二区高清| 爽爽淫人综合网网站| 午夜一级久久| 丝袜诱惑制服诱惑色一区在线观看| 在线亚洲精品| 伊人国产精品| 欧美一区二区三区免费看| 日韩不卡一二三区| 久久激情综合网| 美日韩一区二区三区| 国产va免费精品观看精品视频| a天堂资源在线| 国产91精品对白在线播放| 亚洲性图久久| 亚洲激情久久| 99香蕉国产精品偷在线观看| 激情综合亚洲| 一区二区三区国产在线| 91精品国产自产精品男人的天堂| 国产精品探花在线观看| 久久永久免费| 精品成人免费一区二区在线播放| 尤物精品在线| 亚洲91在线| 久久免费福利| 久久精品一区二区不卡| 首页亚洲欧美制服丝腿| 欧美日一区二区在线观看| 精品不卡一区| 美女网站一区| 首页国产欧美久久| 国产乱人伦精品一区| 日韩精品电影| 亚洲欧美日韩精品一区二区 | 久久久久久夜| 亚洲女同一区| 日韩二区在线观看| 97精品一区二区| 中国女人久久久| 日韩欧美三区| 亚洲精品福利电影| 欧美sss在线视频| 国产色99精品9i| 深夜福利一区| 欧美天堂在线| 欧美亚洲免费| 日韩av在线免费观看不卡| 免费人成精品欧美精品| 久久亚洲色图| 吉吉日韩欧美| 亚洲va中文在线播放免费| 99xxxx成人网| 国产精品啊啊啊| 激情自拍一区| 国产丝袜一区| 久久久精品日韩| 日本中文字幕一区二区| 欧美少妇精品| 日韩中文字幕一区二区三区| 精品免费av| 伊人久久大香伊蕉在人线观看热v| 久草精品视频| 男女男精品网站| 波多野结衣久久精品|