Adobe Javascript in Action Wizard与表单按钮

时间:2017-10-17 18:26:41

标签: javascript pdf stream

我一直在写一些javascript来填写PDF表单的字段。我最初在" Action Wizard"中写了代码。在Adobe。我当时没有意识到我将它添加到我的本地应用程序,而不是表单本身。所以我然后将它复制到from上的一个按钮,现在它无法正常工作。

代码:

/* Test to read in a file and update the fields*/
var dataFrom = null;
//Grab the current path and update it to indicate the TempInfo location
var strPath = this.path;
strPath = strPath.slice(0,-12);
strPath = strPath + "TempInfo.txt"

//Get data from TempFile into array, display message if no file found
try{
  var dataStream = util.readFileIntoStream(strPath);
  var dataFrom = util.stringFromStream(dataStream);
}catch(e){
app.alert("Temp file not found");
}

//Put the data into an array and update the fields
var strTest = new Array();
strTest = dataFrom.split(/\n/);

getField("Username").value = strTest[0];
getField("UID").value = strTest[1];

//Clear the data
dataStream = null;
dataFrom = null;
strTest = null;

我收到app.alert"未找到临时文件"所以" var dataStream = readFileInfoStream(strPath);"不读文件。我做了app.alerts来验证strPath变量是否有正确的路径,还有一个验证dataStream是否为null。由于我是从动作向导中复制它,我不确定它为什么不起作用。

只是为了让这有点奇怪(至少对我来说),如果我打开JavaScript编辑器并突出显示代码,它就可以了。

1 个答案:

答案 0 :(得分:1)

对于util.readFileIntoStream方法,当指定cDIPath参数时,该方法只能在特权上下文中执行,这意味着在批处理,控制台事件或操作期间。除非您创建受信任的函数,否则在文档上下文中执行时它将不起作用。

阅读本文以了解如何在非特权上下文中执行特权方法... http://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_Dev_Contexts%2FExecuting_privileged_methods_in_a_non-privileged_context.htm&rhsearch=trusted%20function&rhsyns=%20