January 18, 2023
Как преобразовать локальный html-файл в pdf с помощью PyQt5?
Вы должны передать путь к файлу как url с помощью QUrl.fromLocalFile(), также не нужно создавать 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")