无法使用JavaScript从iTextSharp访问PDF文档页面/事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法使用JavaScript从iTextSharp访问PDF文档页面/事件相关的知识,希望对你有一定的参考价值。

理想情况下,我尝试使用iTextSharp触发PDF中的事件。如果不这样做,我想知道我是否可以触发一个功能。

基本上,我只是想通过javascript来处理文档。

这适用于PDF

(使用LiveCycle):

eApp.Page1.FormPurpose_PolicyNumber::click - 

(JavaScript,客户端)

this.rawValue = "hello";

从C#开始,在这种情况下我无法处理doc,eApp

var reader = new PdfReader(pdfFileStream);
var writer = new PdfStamper(reader, outputStream);

这个工作:( app对象)

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保存。

另一答案

在我看来,工作解决方案是:

PdfReader reader = new PdfReader(this.pathToPDFTemplate);
...
PdfStamper stamper = new PdfStamper(reader, stream);
...
PdfAction action = PdfAction.JavaScript("this.xfa.form.form1.DesignArea.sfPart3.sfPart3_5.ck2.presence = 'hidden';", stamper.Writer);
stamper.Writer.SetAdditionalAction(PdfWriter.WILL_PRINT, action);
...

诀窍是使用this.xfa.form。在你前往田野之前。

以上是关于无法使用JavaScript从iTextSharp访问PDF文档页面/事件的主要内容,如果未能解决你的问题,请参考以下文章

无法从程序集“itextsharp,版本=5.5.5.0,文化=中性,PublicKeyToken=8354ae6d2174ddca”加载类型“iTextSharp.text.html.HtmlPar

如何使用 itextsharp 从 PDF 的列表框中检索用户选择的索引?

从MikTex(通过Pandoc)写出表格字段,iTextSharp可以解析

无法遍历 iTextSharp 中的字段

c#-iTextSharp-无法访问关闭的Stream。使用PDFReader时

制作pdf时无法让CSS在iTextSharp(5.4.3)中工作