我正在尝试使用 PyQt4 和 python-poppler-qt4 制作一个显示 PDF 文件的应用程序。
到目前为止,我已经设法通过加载使用 Poppler 生成的像素图来显示整个文档,在 QLabel 上设置并附加到 QFrame。QFrame 显示在 QScrollArea 中。
它看起来相当不错,直到实现缩放,这是通过重新生成像素图来完成的,分辨率增加了。此过程需要将整个文档呈现为像素图,这显然需要时间并导致不必要的延迟。
逻辑希望我应该只显示我所看到的页面的图像(这听起来像量子物理学)。我有两个选择:
- 使用 QLabels 创建空白页面,并在它们在滚动区域中可见时将图像加载到它们上;
- 只创建一个页面并在它应该显示之前添加或删除先例或后续页面。
我不确定我是否走在正确的轨道上,或者是否有替代方案。
第一个选项似乎更可行,因为空白页面的可见性决定了何时必须上传像素图(尽管我不知道如何在页面隐藏时删除该像素图)。然而,我不确定这样缩放会更快,因为必须重新生成一个 600 页的文档,尽管有空白页。
第二个选项肯定会改进缩放,因为缩放时必须一次重新生成 1 到 4 页。然而,在第二种情况下,我不确定如何触发页面的构建。
你有什么建议?