我正在尝试使用iTextSharp将文档级JavaScript函数添加到PDF文档。我通过我发现的一些文档通过PdfStamper将该函数添加到文档中。该行特别是:使用iTextSharp将文档级JavaScript添加到PdfResultStamper
_pdfResultStamper.JavaScript = GetJS();
GetJS只是返回从我在Acrobat Pro中编写的原型函数复制的JavaScript字符串。这是不准确的功能,但它足够接近得到我在做什么的想法:
public string GetJS()
{
return "function sayHello(fieldObj){" +
"app.alert(fieldObj.value);" +
"}";
}
当我打开生成的PDF我没有看到这个功能的JS文件(甚至当我选择在任何地方“在Acrobat中编辑所有JavaScript”)。
稍后,我将几个复选框添加到PDF表单并绑定到它们的mouseup事件以调用sayHello。按预期将此代码添加到PDF中。
PdfFormField Field = checkbox.CheckField;
Field.Action = PdfAction.JavaScript("sayHello(event.target);", _pdfResultStamper.Writer);
但是没有任何反应(显然),因为全局/文档级别函数不存在。
如何在文档级别添加sayHello函数以便所有复选框都可以调用它?我尝试了其他一些方法,似乎没有将全局函数写入生成的PDF。
*当我们将PDF页面复制到实际文档时,它正在丢失。这是假设,虽然* - 听起来很合理......'PdfCopy'复制页面范围,但不是文档级别的JavaScript。 – mkl