是否可能使用.NET编辑PDF文档的JavaScript?
我已经查看了Acrobat SDK,但没有太大的运气。看起来你可以从表单等中检索值,但不能编辑文档。
我是不是偏离了轨道?这真的可能吗?
我尝试过iTextSharp,但由于PDF包含表单字段,所以当我保存PDF时,这些字段会丢失。
有什么建议吗?
是否可能使用.NET编辑PDF文档的JavaScript?
我已经查看了Acrobat SDK,但没有太大的运气。看起来你可以从表单等中检索值,但不能编辑文档。
我是不是偏离了轨道?这真的可能吗?
我尝试过iTextSharp,但由于PDF包含表单字段,所以当我保存PDF时,这些字段会丢失。
有什么建议吗?
看起来,您可以使用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();
(这个问题有所帮助)
当然,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");
PDF4NET 可以加载 PDF 文件,并让您访问所有 JavaScript 片段,无论它们是位于文档级别还是字段/注释操作级别。
免责声明:我在开发 PDF4NET 的公司工作。