用python更改PDF中的突出显示注释的颜色
问题描述:
我想用python和popplerqt4更改PDF文件中现有突出显示注释的颜色。我有一个包含现有HighlightAnnotations的PDF文档。对于给定的页面,我可以通过检索注释:用python更改PDF中的突出显示注释的颜色
In [1]: doc = popplerqt4.Poppler.Document.load('doc.pdf')
In [2]: annotations = doc.page(0).annotations()
其中在这种情况下返回类型的增亮两个注解。
In [3]: annotations
Out[3]:
[<popplerqt4.HighlightAnnotation at 0x7f4cbc170948>,
<popplerqt4.HighlightAnnotation at 0x7f4cbc170558>]
现在我可以更改作者或更改这些注释的四边形分别与setAuthor()
和setHighlightQuads()
方法。这可以很好地工作,并且在保存文档时具有预期的行为(使用pdfConverter()
)。
我的问题是,上面给出annotations
,改变高光颜色的正确方法是什么?我见过几个C++示例,例如他们使用annot->style().setColor(RED);
。我如何使用python访问我的注释的样式属性?在我的例子中,我只能访问下面的属性。提前感谢您的任何提示!
In [4]: annot = annotations[0]
In [4]: annot.
annot.ACaret annot.Dashed annot.NoEffect annot.creationDate
annot.AFileAttachment annot.Delete annot.None annot.flags
annot.AGeom annot.DenyDelete annot.Quad annot.highlightQuads
annot.AHighlight annot.DenyPrint annot.Rejected annot.highlightType
annot.AInk annot.DenyWrite annot.Reply annot.modificationDate
annot.ALine annot.External annot.RevScope annot.setAuthor
annot.ALink annot.FixedRotation annot.RevType annot.setBoundary
annot.AMovie annot.FixedSize annot.Solid annot.setContents
annot.ASound annot.Flag annot.Squiggly annot.setCreationDate
annot.AStamp annot.Group annot.StrikeOut annot.setFlags
annot.AText annot.Hidden annot.SubType annot.setHighlightQuads
annot.A_BASE annot.Highlight annot.ToggleHidingOnMouse annot.setHighlightType
annot.Accepted annot.HighlightType annot.Underline annot.setModificationDate
annot.Beveled annot.Inset annot.Unmarked annot.setUniqueName
annot.Cancelled annot.LineEffect annot.author annot.store
annot.Cloudy annot.LineStyle annot.boundary annot.subType
annot.Completed annot.Marked annot.contents annot.uniqueName
我使用下面的包:
python -V
Python 3.4.3
popplerqt4.version()
(0, 24, 0)
popplerqt4.poppler_version()
(0, 30, 0)
答
的解决方案是在这里,应该在不久后实现中的python-poppler的-QT4> 0.24.0