使用.net编辑pdf中的javascript

时间:2011-02-28 00:53:03

标签: .net pdf itextsharp acrobat

是否可以使用.net?

编辑pdf文档的javascript

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

我离开赛道了吗?这甚至可能吗?

我已经尝试了iTextSharp,但由于pdf包含表单字段,因此在保存pdf时字段会丢失。

有什么建议吗?

4 个答案:

答案 0 :(得分:6)

嗯,显然你可以使用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帮助)

答案 1 :(得分:1)

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

我不知道如何在其他库中完成,但使用Docotic.Pdf(我为Bit Miracle工作),您可以为控件,页面和文档整体添加/删除/编辑javascript操作。< / p>

以下是设置和更改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");

答案 2 :(得分:1)

iTextSharp上的

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

答案 3 :(得分:0)

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

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