PDFtron:更改元素名称

问题描述

我正在使用 PDFTron 的 Java SDK,我想更改元素的名称,然后将修改后的 PDF 写入新文件,但我得到以下输出

keytool -v -list -keystore keystore.jks

如何更改对象的名称?我的代码(在 Scala 中)如下:

PDFNet is running in demo mode.
Permission: read
Exception: 
     Message: SetName() can't be invoked on Obj of this type.

解决方法

API Field.GetName() 在技术上是此叶字段和任何父字段的合并,由 . 分隔。

因此,虽然 Field.getName() 可能返回 name.first,但字段的 T 值可能只是 first。这就是 Field.getPartialName() 存在的原因。

因此,更改 T 值的更好/更安全的代码是。

var obj = field.findAttribute("T")
if (obj != null && obj.isString() && obj.getAsPDFText().startsWith("MyPrefix")) {
  obj.setString("NewPrefix")
}