【问题标题】:Editing javascript in a pdf with .net使用 .net 在 pdf 中编辑 javascript
【发布时间】:2011-07-05 11:10:40
【问题描述】:

是否可以用 .net 编辑 pdf 文档的 javascript?

我看过Acrobat SDK,但运气不佳。看起来您可以从表单等中检索值,但不能编辑文档。

我是否偏离了轨道?这甚至可能吗?

我试过iTextSharp,但由于 pdf 包含表单字段,所以当我保存 pdf 时这些字段会丢失。

有什么建议吗?

【问题讨论】:

    标签: .net pdf itextsharp acrobat


    【解决方案1】:

    好吧,显然你可以使用iTextSharp

            Document document = new Document(PageSize.A4, 50, 50, 50, 50);
    
            PdfReader reader = new PdfReader(@"Source.pdf");
            FileStream output = new FileStream(@"Destination.pdf", FileMode.Create);
    
            PdfStamper pdfStamper = new PdfStamper(reader, output, '\0', true);               
            pdfStamper.JavaScript = "app.alert(\"Hello world!\");";
    
            pdfStamper.FormFlattening = false;
            pdfStamper.Close();
            reader.Close();
    

    This question 帮助)

    【讨论】:

      【解决方案2】:

      +1 在 iTextSharp 上。至于保存时丢失的字段,值得注意的是 Fox It Reader 是免费的,并且允许保存可编辑的 PDF。如果这不是一个选项,那么在大多数公司中通常是 Acrobat Standard。您可以使用任意数量的 PDF 打印驱动程序并将编辑后的 ​​PDF 表单打印为 PDF,尽管此时它将是只读的(在某些情况下仍然有用)。

      【讨论】:

        【解决方案3】:

        当然,可以编辑 PDF 文档的 javascript。

        我不知道如何在其他库中做到这一点,但使用 Docotic.Pdf(我为 Bit Miracle 工作)您可以为控件、页面和整个文档添加/删除/编辑 javascript 操作。

        这是设置和更改 javascript 操作的示例。该代码假定该文档包含一个按钮。

        PdfDocument doc = new PdfDocument("document-with-button.pdf");
        // assume that first widget is a button
        PdfButton button = doc.Widgets[0] as PdfButton; 
        
        // add javascript action for OnMouseEnter event
        PdfJavaScriptAction action = doc.CreateJavaScriptAction("app.alert('OnMouseEnter JavaScript Action',3)");
        button.OnMouseEnter = action;
        
        // change javascript action for OnMouseEnter event
        (button.OnMouseEnter as PdfJavaScriptAction).Script = "app.alert('Well, hello from OnMouseEnter JavaScript Action',3)";
        
        doc.Save("output.pdf");
        

        【讨论】:

          【解决方案4】:

          PDF4NET 可以加载 PDF 文件,它使您可以访问所有 J​​avaScript 片段,无论它们位于文档级别还是字段/注释操作级别。

          免责声明:我为开发 PDF4NET 的公司工作。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-07-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-10-29
            • 1970-01-01
            相关资源
            最近更新 更多