使用Acrobat javascript

时间:2015-11-04 04:10:47

标签: javascript xml file exists acrobat

我正在尝试确定在运行其他代码之前我的桌面上是否存在特定的.xml文件。以下可信脚本位于我的Javascripts文件夹级目录中。下面注释为“第一部分”的部分只是将表单的所有字段设置为开放/可写。第二部分查找.xml文件,从中导入XFA数据。

我的问题是我正在尝试确定此.xml文件是否存在于首位。现在,如果它不存在,它会显示一个对话窗口来浏览该文件。 相反,如果xml文件不存在,我希望它显示警告,并且永远不会显示对话框。我做错了什么?

任何帮助都很大,谢谢

CODE:

var myTrustFunctTwo = app.trustedFunction(function(doc)
{

//First Part
  for (var nPageCount = 0; nPageCount < doc.numPages; nPageCount++) {
        var oFields = doc.xfa.layout.pageContent(nPageCount, "field");
  //app.alert(oFields,0);
        var nNodesLength = oFields.length;
        // Set the field property.
        for (var nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount++) {
            oFields.item(nNodeCount).access = "open";
        }
    }

//Second Part
app.beginPriv();
doc.importXFAData({
          cPath:"/c/Users/ME/Desktop/Filled_In.xml"
                 });
app.endPriv();
});
app.trustedFunction(myTrustFunctTwo);

更新代码,包括尝试/捕获块

var myTrustFunctTwo = app.trustedFunction(function(doc) {

    for (var nPageCount = 0; nPageCount < doc.numPages; nPageCount++) {
        var oFields = doc.xfa.layout.pageContent(nPageCount, "field");
        //app.alert(oFields,0);
        var nNodesLength = oFields.length;
        // Set the field property.
        for (var nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount++) {
            oFields.item(nNodeCount).access = "open";
        }
    }


    try {

        app.beginPriv();
        doc.importXFAData({
            cPath: "/c/Users/ME/Desktop/Filled_In.xml"
        });
        app.endPriv();

    } catch (e) {
        app.alert("No File Found", 1);
    }


});

app.trustedFunction(myTrustFunctTwo);

1 个答案:

答案 0 :(得分:0)

如果您尝试导入的文件不存在,您将收到错误消息。使用try…catch,您可以捕获该消息并退出该函数,从而防止后续代码运行。