【问题标题】:Conditionally fill button in Adobe PDF formAdobe PDF 表单中的有条件填写按钮
【发布时间】:2015-03-18 08:37:32
【问题描述】:

我创建了一个巨大的按钮来覆盖我的整个 PDF 文件。如果没有填写PDF表单中的必填字段,我想将其填写为白色。(这是为了防止人们跳过必填字段。我的javascript代码如下所示。我最初使用Adobe Acrobat Pro填写了按钮,如果“年份”字段已完成,我将尝试删除该按钮。

var aNames = ["year"];
var bComplete = true;
var cValue ="";
for(i=0;i<aNames.length;i++){
    cValue=this.getField(aNames[i]).value;
    if(cValue==this.getField(aNames[i]).defaultValue){ 
        bComplete=false;
    }
}

if(bComplete==true){
    document.getElementById("Button1").remove();
}else {
app.alert("Please complete form",0,0);
}

【问题讨论】:

  • 这看起来很像受 webbrowser JavaScript 影响...

标签: javascript pdf adobe acrobat


【解决方案1】:

这看起来很像受 webbrowser JavaScript 的影响......

第一个问题是按钮;如果它涵盖文档,您如何填写表格(或者它是否涵盖后续页面?)。

关于JavaScript,你不需要创建一个字段名数组,你直接知道字段,所以你可以直接寻址它们,而不必循环,如:

if (this.getField("myYear").value != this.getField("myYear").defaultValue) 

当然,如果你有一堆这样的字段,创建一个字段名称的文档级数组可能是一个想法。

接下来,您不会删除按钮字段,而只是将其隐藏,如下所示:

this.getField("myCoverButton").display = display.hidden ;

查看 Acrobat JavaScript 文档可能是个好主意,它是 Acrobat SDK 的一部分,可从 Adob​​e 网站下载。

【讨论】:

  • 感谢您的回答 Max。对于您提到的有关按钮的问题:我已将按钮状态设置为“隐藏但可打印”。您基本上看不到该按钮,但打印时它会覆盖页面。与 for 循环一样,我有一堆字段,所以我想我可能会遍历它们来检查条件。我也尝试使用您建议的命令隐藏按钮,但我没有运气!
  • 我注意到我将 myYear 文本字段和封面按钮命名为相同;更改了这一点,以更清楚地表明它不是同一个字段。如果您有一堆字段要测试,那么问题确实是循环遍历所有字段(并排除按钮和签名字段)或创建一个字段名称数组进行测试,然后遍历该数组。
  • 我确实在创建一个字段名称数组并循环遍历它们。代码按我的意愿行事。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-09
  • 2018-07-03
  • 1970-01-01
  • 1970-01-01
  • 2014-12-13
  • 2013-02-19
相关资源
最近更新 更多