gpt4 book ai didi

java - 如何修改 iText 中 PdfAnnotations 的大小并禁用某些选项

转载 作者:太空宇宙 更新时间:2023-11-04 13:15:10 27 4
gpt4 key购买 nike

我需要使注释的内容不可编辑并禁用这些选项。所以,

1. 是否可以禁用 iText 中 PdfAnnotation 对象(文本、图章等)的选项下拉列表。如果是,那么如何?
2.注释框(弹出窗口、文本等)的大小也可以更改吗?使用此 PdfAnnotation.FLAGS_READONLY

注释中的文本已变得不可编辑

如何禁用此处的下拉选项 /image/5QmGj.jpg

最佳答案

您无法阻止人们使用下拉列表,但您可以通过使用所有者密码加密文档来确保“回复”和“删除”等功能不会显示在该列表中,并确保您没有设置允许人们添加注释的选项。 PDF 加密后,您会注意到下拉列表中的条目受到限制。 (请参阅 How to protect an already existing PDF with a password? 以了解如何加密文档。)

更改注释的大小只需替换为该注释定义的 PDF 矩形即可。请查看MovePopup示例。

我们有以下注释和弹出窗口:

enter image description here

顺便说一句,我知道文本注释是 /Annots 数组中的第一个注释,弹出窗口是第二个注释。这意味着我可以在代码中偷工减料:

public void manipulatePdf(String src, String dest) throws IOException, DocumentException {
PdfReader reader = new PdfReader(src);
PdfDictionary page = reader.getPageN(1);
PdfArray annots = page.getAsArray(PdfName.ANNOTS);
PdfDictionary sticky = annots.getAsDict(0);
PdfArray stickyRect = sticky.getAsArray(PdfName.RECT);
PdfRectangle stickyRectangle = new PdfRectangle(
stickyRect.getAsNumber(0).floatValue() - 120, stickyRect.getAsNumber(1).floatValue() -70,
stickyRect.getAsNumber(2).floatValue(), stickyRect.getAsNumber(3).floatValue() - 30
);
sticky.put(PdfName.RECT, stickyRectangle);
PdfDictionary popup = annots.getAsDict(1);
PdfArray popupRect = popup.getAsArray(PdfName.RECT);
PdfRectangle popupRectangle = new PdfRectangle(
popupRect.getAsNumber(0).floatValue() - 250, popupRect.getAsNumber(1).floatValue(),
popupRect.getAsNumber(2).floatValue(), popupRect.getAsNumber(3).floatValue() - 250
);
popup.put(PdfName.RECT, popupRectangle);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
stamper.close();
}

我通过从此处和那里注释的 /Rect 值中的 xy 值减去 120、70、250...用户单位,使两个矩形变大。

结果如下所示:

enter image description here

文本注释图标和带有文本的实际弹出窗口现在都更大了。

您可以自行调整代码,以便:

  1. 您找到要放大的实际弹出注释,
  2. 您可以使用您选择的用户单位数量更改该注释的矩形。

关于java - 如何修改 iText 中 PdfAnnotations 的大小并禁用某些选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33609564/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com