使用.NET编辑PDF中的JavaScript

4

是否可能使用.NET编辑PDF文档的JavaScript?

我已经查看了Acrobat SDK,但没有太大的运气。看起来你可以从表单等中检索值,但不能编辑文档。

我是不是偏离了轨道?这真的可能吗?

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

有什么建议吗?

4个回答

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();

(这个问题有所帮助)


注:该内容涉及IT技术。

1

当然,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");

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

0

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接