我已将自定义javascript添加到pdf表单字段以执行某些条件格式设置。 当表单处于可编辑模式时,脚本可以正常工作。 当我们将格式flattening更改为true时,我添加到pdf表单字段的脚本无效。
使用itextsharp
添加脚本的方法private void AddTextBoxEvent(string fieldName, PdfStamper stamper, string script)
{
var item = stamper.AcroFields.GetFieldItem(fieldName);
if (item != null)
{
var dict = item.GetWidget(0);
if (dict != null)
{
var aaDict = dict.GetAsDict(PdfName.AA);
var action = PdfAction.JavaScript(script, stamper.Writer);
if (aaDict == null) aaDict = new PdfDictionary();
aaDict.Put(PdfName.F, action);
dict.Put(PdfName.AA, aaDict);
}
}
}
我们添加的示例脚本
if(event.value == 0) event.value = '';
var v = Number(event.value);
if (v>0 && v<100) {event.target.fillColor = color.red;}
else if (v<0) {event.target.fillColor = color.red;}
else if (v>100) {event.target.fillColor = color.red;}
else if (v=100) {event.target.fillColor = color.white;}
if (event.value=='') event.target.fillColor = color.transparent;
&#13;
将格式展平设置为真正的脚本无法正常工作
stamp.FormFlattening = true;
任何人都可以帮助找到解决方案。
提前致谢