第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何使用 PyQt5 將本地 html 文件轉(zhuǎn)換為 pdf?

如何使用 PyQt5 將本地 html 文件轉(zhuǎn)換為 pdf?

慕俠2389804 2023-05-16 14:44:11
我嘗試過使用 wkhtml 和 weasyprint 庫(kù),但所有這些庫(kù)都呈現(xiàn)一個(gè)空白的 pdf 頁面。唯一可行的選項(xiàng)是 pdfcrowd,但這是一個(gè)付費(fèi)圖書館。我找到了幾個(gè)使用 PyQt 轉(zhuǎn)換網(wǎng)頁的選項(xiàng):import sysfrom PyQt5 import QtCore, QtWidgets, QtWebEngineWidgetsapp = QtWidgets.QApplication(sys.argv)loader = QtWebEngineWidgets.QWebEngineView()loader.setZoomFactor(1)loader.page().pdfPrintingFinished.connect(    lambda *args: print('finished:', args))loader.load(QtCore.QUrl('https://en.wikipedia.org/wiki/Main_Page'))def emit_pdf(finished):    loader.show()    loader.page().printToPdf("test.pdf")loader.loadFinished.connect(emit_pdf)app.exec()但是,我不太確定如何使它適應(yīng)本地保存的 html 文件。
查看完整描述

1 回答

?
BIG陽

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊

您必須使用 QUrl.fromLocalFile() 將文件路徑作為 url 傳遞,也沒有必要?jiǎng)?chuàng)建 QWebEngineView,而只需使用 QWebEnginePage:


import os

import sys


from PyQt5 import QtCore, QtWidgets, QtWebEngineWidgets



def html_to_pdf(html, pdf):

    app = QtWidgets.QApplication(sys.argv)


    page = QtWebEngineWidgets.QWebEnginePage()


    def handle_print_finished(filename, status):

        print("finished", filename, status)

        QtWidgets.QApplication.quit()


    def handle_load_finished(status):

        if status:

            page.printToPdf(pdf)

        else:

            print("Failed")

            QtWidgets.QApplication.quit()


    page.pdfPrintingFinished.connect(handle_print_finished)

    page.loadFinished.connect(handle_load_finished)

    page.load(QtCore.QUrl.fromLocalFile(html))

    app.exec_()



if __name__ == "__main__":


    CURRENT_DIR = os.path.dirname(os.path.realpath(__file__))

    filename = os.path.join(CURRENT_DIR, "index.html")

    print(filename)


    html_to_pdf(filename, "test.pdf")


查看完整回答
反對(duì) 回復(fù) 2023-05-16
  • 1 回答
  • 0 關(guān)注
  • 231 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)