Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python QWebEngineView无法呈现嵌入HTML中的PDF_Python_Pdf_Pyqt5_Qtwebengine - Fatal编程技术网

Python QWebEngineView无法呈现嵌入HTML中的PDF

Python QWebEngineView无法呈现嵌入HTML中的PDF,python,pdf,pyqt5,qtwebengine,Python,Pdf,Pyqt5,Qtwebengine,我正在为一个基于MDI的PyQt5应用程序编写一个Python脚本,windows使用新的QWebEngineView来呈现一些将PDF嵌入iFrame中的HTML。HTML是自定义生成的字符串,PDF是本地文件 HTML是本地存储的模板,我的代码将加载该模板,然后进行更改以插入变量: <!DOCTYPE html> <html> <head> <title>Title</title> </head> &

我正在为一个基于MDI的PyQt5应用程序编写一个Python脚本,windows使用新的QWebEngineView来呈现一些将PDF嵌入iFrame中的HTML。HTML是自定义生成的字符串,PDF是本地文件

HTML是本地存储的模板,我的代码将加载该模板,然后进行更改以插入变量:

<!DOCTYPE html>
<html>
  <head>
    <title>Title</title>
  </head>
  <body>
    <iframe src="$PDF">
    </iframe>
  </body>
</html>
此脚本的大部分工作正常-它创建主窗口,接收菜单栏命令以创建文档窗口,创建文档窗口,并加载HTML。一切都好

问题是嵌入的PDF无法加载。我得到的只是一个灰色的表面

进一步的意见:

  • 插入到页面中的任何HTML可视元素都会正确呈现

  • 将资源类型更改为图像(如PNG)会导致正确渲染资源。有问题的只是PDF

  • 如果我将文件URL更改为其他内容,则会收到关于死链接的警告。所以它显然是在加载PDF文件

  • 实际的PDF文件并不重要——我已经尝试了几种不同的PDF文件,结果相同

  • 灰色表面提供了一个包含“重新加载”、“保存页面”和“查看源”的上下文菜单。重载显然会导致页面刷新(它会短暂闪烁),但会产生相同的结果。保存页面和查看源代码不执行任何操作


有什么想法吗?提前感谢。

这似乎是一个Qt WebEngine bug(),因为我已经用Qt 5.15(以及PyQt5 5.15和PyQtWebEngine 5.15)实现了代码,并且它没有加载pdf。相反,我使用PyQt5 5.14.2对其进行了测试,PyQtWebEngine 5.14.0工作正常,因此我建议您安装以下软件包:

python -m pip install pyqt5==5.14.2 pyqtwebengine==5.14.0

对5.14.2非常有效。我必须卸载PyQt5、PyQtWebEngine和PyQt5 sip,然后通过pip重新安装前两个(使用您指定的版本)。现在工作得很好。非常感谢你!
python -m pip install pyqt5==5.14.2 pyqtwebengine==5.14.0