PDFtron:更改元素名称
PDFtron: change name of element
我正在使用 PDFTron 的 Java SDK,我想更改元素的名称,然后将修改后的 PDF 写入新文件,但我得到以下输出:
PDFNet is running in demo mode.
Permission: read
Exception:
Message: SetName() can't be invoked on Obj of this type.
如何更改对象的名称?我的代码(在 Scala 中)如下:
def main(args: Array[String]): Unit = {
PDFNet.initialize()
var doc = new PDFDoc("example.pdf")
var fdf = doc.fdfExtract
var iter = fdf.getFieldIterator
while (iter.hasNext) {
var field = iter.next
var obj = field.findAttribute("T")
if (obj != null && field.getName.startsWith("MyPrefix")) {
obj.setName("NewPrefix") // `field.setName` produces the same error
}
}
}
API Field.GetName()
在技术上是此叶字段和任何父字段的合并,由 .
.
分隔
因此,虽然 Field.getName()
可能 return name.first
,但字段的 T
值可能只是 first
。这就是存在 Field.getPartialName()
的原因。
所以 better/safer 更改 T
值的代码是。
var obj = field.findAttribute("T")
if (obj != null && obj.isString() && obj.getAsPDFText().startsWith("MyPrefix")) {
obj.setString("NewPrefix")
}
我正在使用 PDFTron 的 Java SDK,我想更改元素的名称,然后将修改后的 PDF 写入新文件,但我得到以下输出:
PDFNet is running in demo mode.
Permission: read
Exception:
Message: SetName() can't be invoked on Obj of this type.
如何更改对象的名称?我的代码(在 Scala 中)如下:
def main(args: Array[String]): Unit = {
PDFNet.initialize()
var doc = new PDFDoc("example.pdf")
var fdf = doc.fdfExtract
var iter = fdf.getFieldIterator
while (iter.hasNext) {
var field = iter.next
var obj = field.findAttribute("T")
if (obj != null && field.getName.startsWith("MyPrefix")) {
obj.setName("NewPrefix") // `field.setName` produces the same error
}
}
}
API Field.GetName()
在技术上是此叶字段和任何父字段的合并,由 .
.
因此,虽然 Field.getName()
可能 return name.first
,但字段的 T
值可能只是 first
。这就是存在 Field.getPartialName()
的原因。
所以 better/safer 更改 T
值的代码是。
var obj = field.findAttribute("T")
if (obj != null && obj.isString() && obj.getAsPDFText().startsWith("MyPrefix")) {
obj.setString("NewPrefix")
}