使用 java itext 或 pdfbox 在现有 pdf 中添加便签
adding sticky notes in an existing pdf using java itext or pdfbox
我正在尝试向现有 pdf 添加便签。请帮助提供有关 itext 或 pdfbox 的任何建议。
我试过使用 pdfbox 但找不到任何解决方案。
请帮忙...
这是我想要的便签类型的示例 pdf:http://www.pdfill.com/example/pdf_commenting_new.pdf
我找到了解决方案。
According to the PDF specification, 'a text annotation represents a
“sticky note” attached to a point in the PDF document.' Thus, neither
the class PDAnnotationTextMarkup
nor the subtype SUB_TYPE_POLYGON
appears to match your requirements. Instead, you should use the
PDAnnotationText
class. As an aside, PDAnnotationTextMarkup
is
documented (JavaDocs) to be the abstract class that represents a text
markup annotation. While it is not actually declared abstract, that
characterization should make clear that it probably does not work
without further ado.
所以我使用了下面的代码,它对我来说就像魔法一样有效
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);
它可能对未来的开发者有用:-)
我正在尝试向现有 pdf 添加便签。请帮助提供有关 itext 或 pdfbox 的任何建议。
我试过使用 pdfbox 但找不到任何解决方案。 请帮忙...
这是我想要的便签类型的示例 pdf:http://www.pdfill.com/example/pdf_commenting_new.pdf
我找到了解决方案。
According to the PDF specification, 'a text annotation represents a “sticky note” attached to a point in the PDF document.' Thus, neither the class
PDAnnotationTextMarkup
nor the subtypeSUB_TYPE_POLYGON
appears to match your requirements. Instead, you should use thePDAnnotationText
class. As an aside,PDAnnotationTextMarkup
is documented (JavaDocs) to be the abstract class that represents a text markup annotation. While it is not actually declared abstract, that characterization should make clear that it probably does not work without further ado.
所以我使用了下面的代码,它对我来说就像魔法一样有效
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);
它可能对未来的开发者有用:-)