如何使用Acrobat中的JavaScript获取PDF表单字段的所有键值对?

3

我搜索并找到了使用Acrobat中的javascript获取PDF特定字段值的代码片段。

但是我需要在javascript中将所有字段作为键值对获取。我尝试了一些代码,但对我没有用。

if(this.hostContainer) {    
        var names = new Array();    
        names[0] = this.getField("personal.name").value.toString(); 
        names[1] = this.getField("personal.loginname").value.toString();    
        try{    
            this.hostContainer.postMessage(names);  
        }   
        catch(e){   
            app.alert(e.message);   
        }   
}

PDF文件如下所示,

姓名:x(可编辑)

年龄:36(可编辑)

性别:男(可编辑)

但是PDF中的表单字段可能会有所不同。


请详细说明“它对我不起作用”的情况。 - Boaz
无法获取所有字段的键值对。我没有看到任何JavaScript方法来获取所有键值对。 - sankar
如果您有额外的信息,请将其添加到您的问题中。这将使问题更清晰,并增加人们回答它的可能性。 - Boaz
无法在JavaScript中获取键值对。示例PDF文件如上所示,但PDF文件可能会有所不同(包括键和值)。我该如何获取它? - sankar
1个回答

0
一个非常简单的方法如下; 您可以从控制台运行这段代码:
for (var i = 0 ; i < this.numFields ; i++) {
var fn = this.getNthFieldName(i) ;
if (fn.type != "button") {
console.println("Name: " + fn + "   Value: " + this.getField(fn).valueAsString) 
}
}

这样就可以了。

如果你想创建一个报告,你可以使用报告对象,或者你可以创建一个数据对象(在任何情况下,你都会写入目标,而不是控制台)。


我已经查看了上面的代码片段。但我的问题是,“如何在JavaScript函数中获取PDF文档对象”。 - sankar
如果它是文档本身,您将使用“this”;如果它是另一个文档,则可以使用app.openDoc()获取其doc对象;您可能需要将其他文档的disclosed标志设置为true,以便访问它。 - Max Wyss

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接