python - 如何测试 popplerqt5 中的注释类型?
问题描述
popplerqt5 是一个用于 python 的 pdf 渲染库。
Annotation 是这个库中的一个抽象类。它有很多子类,比如 LinkAnnotation。如何从 Annotation 对象中知道子类?
import popplerqt5 as poppler
import PyQt5
import PyQt5.QtXml
def main():
file = 'file.pdf'
doc = poppler.Poppler.Document.load(file)
annotations = doc.page(1).annotations()
for annotation in annotations:
print (annotation)
# if isinstance(annotation, poppler.LinkAnnotation):
# print ("Link")
if __name__ == "__main__":
main()
这不起作用,LinkAnnotation 没有定义。我正在使用 Python 3。
解决方案
你必须使用poppler.Poppler.LinkAnnotation
:
import popplerqt5 as poppler
def main():
file = 'test.pdf'
doc = poppler.Poppler.Document.load(file)
annotations = doc.page(2).annotations()
for annotation in annotations:
if isinstance(annotation, poppler.Poppler.LinkAnnotation):
print ("Link")
if __name__ == "__main__":
main()
推荐阅读
- html - 如何避免在 HTML 中跨页面拆分 DIV
- xcode - 如何在每个新版本中重置自动递增的内部版本号?
- arrays - C Array:如何移动字符串中的每个字符?
- node.js - 使用 Node.js 和 Electron.js 将 HTML 转为 PDF
- python - 如何为对象中的所有方法起别名?
- javascript - Vuetify 自动完成组件:设置值
- protractor - 预期 '' 等于 '您所做的更改可能不会被保存。
- javascript - 如何使用 javascript 打印棋盘看起来像下面的网格
- r - 当 left_join() 在 R 中标记时间戳数据帧时出现不希望的输出
- azure - 当 az cli 命令失败时,如何让 powershell 脚本以非零代码退出?