2015-04-04 203 views
1

我想用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) 

回答

相关问题