Открытие файлов PDF с помощью PyQt5 QtWebEngineWidgets

Я пытаюсь просмотреть файл PDF с помощью QtWebEngineWidgets, но ваш файл не найден в окне. Первый раз пробую QtWebEngineWidgets. Пожалуйста, смотрите результат на картинке ниже.

import os
import sys
from PyQt5 import QtCore, QtWidgets, QtWebEngineWidgets

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

PDFJS = QtCore.QUrl.fromLocalFile(os.path.join(CURRENT_DIR, "pdfjs/web/viewer.html")).toString()

class PdfReport(QtWebEngineWidgets.QWebEngineView):
    def load_pdf(self, filename):
        url = QtCore.QUrl.fromLocalFile(filename).toString()
        self.load(QtCore.QUrl.fromUserInput("%s?file=%s" % (PDFJS, url)))

    def sizeHint(self):
        return QtCore.QSize(640, 480)


class Foo(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super(Foo, self).__init__(parent)

        self.pdf = PdfReport()
        filename = "summary_equipment_evaluation.pdf"
        self.pdf.load_pdf(filename)

        lay = QtWidgets.QVBoxLayout(self)
        lay.addWidget(self.pdf)


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    w = Foo()
    w.show()
    sys.exit(app.exec_())

введите здесь описание изображения

ОБНОВЛЕНИЕ: после загрузки pdfjs я получаю это пустое окно:

введите здесь описание изображения


person jabbarlee    schedule 03.08.2021    source источник
comment
Я протестировал эти коды, и они работают, они позволяют показывать pdf в окне Qt, возможно, у вас были проблемы с реализацией, поэтому вам следует подробно показать, что вы пробовали. Пожалуйста, используйте @username   -  person eyllanesc    schedule 03.08.2021
comment
Я попытался запустить код в вашем ответе здесь stackoverflow.com/ вопросов/56866298/, изменив путь к файлу PDF, но я получаю, что ваш файл не найден в окне.   -  person jabbarlee    schedule 04.08.2021
comment
@eyllanesc добавил фото выше   -  person jabbarlee    schedule 04.08.2021
comment
Покажите код, изображение не помогает. Прочтите Как спросить и просмотрите тур   -  person eyllanesc    schedule 04.08.2021
comment
@eyllanesc только что обновил вопрос, добавив подробности. Спасибо!   -  person jabbarlee    schedule 04.08.2021
comment
У вас ошибка, вы должны использовать полный путь (недостаточно имени файла)   -  person eyllanesc    schedule 04.08.2021
comment
@eyllanesc Я тоже пробовал, но получаю ту же ошибку.   -  person jabbarlee    schedule 04.08.2021
comment
добавьте print(QtCore.QUrl.fromUserInput("%s?file=%s" % (PDFJS, url))) после self.load(QtCore.QUrl.fromUserInput("%s?file=%s" % (PDFJS, url))) и скажите мне, что вы получаете (очевидно, используя полный путь)   -  person eyllanesc    schedule 04.08.2021
comment
@eyllanesc PyQt5.QtCore.QUrl('file:///G:/QC Report Generation/pdfjs/web/viewer.html?file=file:///G:/QC Report Generation/PDFs/summary_equipment_evaluation.pdf')   -  person jabbarlee    schedule 04.08.2021
comment
У вас есть распакованная папка pdfjs рядом с вашим скриптом?   -  person eyllanesc    schedule 04.08.2021
comment
@eyllanesc Нет, мне нужно его откуда-то скачать?   -  person jabbarlee    schedule 04.08.2021
comment
@eyllanesc Извините за беспокойство, но после загрузки pdfjs я получаю результат, показанный выше. Похоже, я близок, но не могу открыть pdf. PyQt5.QtCore.QUrl('file:///G:/QC_Report_Generation/pdfjs/web/viewer.html?file=file:///G:/QC_Report_Generation/PDFs/summary_equipment_evaluation.pdf')   -  person jabbarlee    schedule 04.08.2021
comment
Попробуйте следующий пример (который больше не нуждается в jspdf): gist.github.com/eyllanesc/7566bab2f8a91593c460015ee2151717   -  person eyllanesc    schedule 04.08.2021
comment
@eyllanesc У меня пустое окно, то же самое, даже если я выбираю pdf вручную.   -  person jabbarlee    schedule 04.08.2021
comment
В этом коде я добавил печать, какая версия Qt и PyQt печатается?   -  person eyllanesc    schedule 04.08.2021
comment
Версия PyQt5: 5.9.2, версия Qt: 5.9.6   -  person jabbarlee    schedule 04.08.2021
comment
Есть проблема, у вас очень старая версия. Используйте последние версии: python -m pip install pyqt5==5.15.4 pyqtwebengine==5.15.4   -  person eyllanesc    schedule 04.08.2021