我正在尝试将便笺添加到现有的pdf中。请使用itext或pdfbox提出任何建议。
我尝试使用pdfbox,但找不到任何解决方案。 请帮助...
这是我想要哪种类型的便签的样本pdf:http://www.pdfill.com/example/pdf_commenting_new.pdf
答案 0 :(得分:2)
我找到了解决方法。
根据PDF规范,“文本注释代表 PDF文档中某个点的“便签”。因此, 类
PDAnnotationTextMarkup
或子类型SUB_TYPE_POLYGON
似乎符合您的要求。相反,您应该使用PDAnnotationText
类。顺便说一句,PDAnnotationTextMarkup
是 文档(JavaDocs)是代表文本的抽象类 标记注释。虽然它实际上不是抽象的,但是 表征应明确表明它可能不起作用 事不宜迟。
所以我使用了下面的代码,它对我来说就像魔术一样
PDRectangle position = new PDRectangle();
position.setUpperRightX(textPosition.getX());
position.setUpperRightY(ph - textPosition.getY());
position.setLowerLeftX(textPosition.getX()-4);
position.setLowerLeftY(ph - textPosition.getY());
PDGamma colourBlue = new PDGamma();
colourBlue.setB(1);
PDAnnotationText text = new PDAnnotationText();
text.setContents(commentNameWithComments.get(word));
text.setRectangle(position);
text.setOpen(true);
text.setConstantOpacity(50f);
assert annotations != null;
annotations.add(text);
page1.setAnnotations(annotations);
replaceText(word);
这可能对将来的开发人员有用:-)