Python QWebEngineView无法呈现嵌入HTML中的PDF
我正在为一个基于MDI的PyQt5应用程序编写一个Python脚本,windows使用新的QWebEngineView来呈现一些将PDF嵌入iFrame中的HTML。HTML是自定义生成的字符串,PDF是本地文件 HTML是本地存储的模板,我的代码将加载该模板,然后进行更改以插入变量: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> &
<!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