理想情况下,我尝试使用 iTextSharp 触发 PDF 中的事件。 如果做不到这一点,我想知道是否可以触发一个函数。
基本上,我只是想通过 JavaScript 获取文档的句柄。
这在 PDF 中有效
(使用 LiveCycle):
eApp.Page1.FormPurpose_PolicyNumber::click -
(JavaScript,客户端)
this.rawValue = "hello";
在本例中,从 C# 我无法获取文档 eApp
的句柄。
var reader = new PdfReader(pdfFileStream);
var writer = new PdfStamper(reader, outputStream);
这有效:(应用程序对象)
PdfAction js =
PdfAction.JavaScript(
"app.alert('hello');",
writer.Writer);
writer.Writer.AddJavaScript(js);
这不是:
PdfAction js =
PdfAction.JavaScript(
"eApp.Page1.FormPurpose_PolicyNumber.execEvent('click');",
writer.Writer);
writer.Writer.AddJavaScript(js);
也不起作用:
PdfAction js =
PdfAction.JavaScript(
"eApp.Page1.FormPurpose_PolicyNumber.rawValue= 'hello'",
writer.Writer);
writer.Writer.AddJavaScript(js);
我到处寻找答案,但一直找不到,是的,有类似的问题,但要么没有得到解答,要么与我正在做的事情非常不同。
最佳答案
根据您的最新评论 - 这是行不通的。 iTextSharp 只会将一些脚本添加到文档中。该脚本将在某些客户端应用程序中启动,例如 Adobe Reader。它不会执行文档中的任何脚本。假设在您的情况下,使用 c# 对文档执行您想要的操作,然后将其保存为将表单扁平化设置为 true 会更容易。
关于javascript - 无法使用 JavaScript 从 iTextSharp 访问 PDF 文档页面/事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12063286/