【发布时间】:2011-07-05 11:10:40
【问题描述】:
是否可以用 .net 编辑 pdf 文档的 javascript?
我看过Acrobat SDK,但运气不佳。看起来您可以从表单等中检索值,但不能编辑文档。
我是否偏离了轨道?这甚至可能吗?
我试过iTextSharp,但由于 pdf 包含表单字段,所以当我保存 pdf 时这些字段会丢失。
有什么建议吗?
【问题讨论】:
标签: .net pdf itextsharp acrobat
是否可以用 .net 编辑 pdf 文档的 javascript?
我看过Acrobat SDK,但运气不佳。看起来您可以从表单等中检索值,但不能编辑文档。
我是否偏离了轨道?这甚至可能吗?
我试过iTextSharp,但由于 pdf 包含表单字段,所以当我保存 pdf 时这些字段会丢失。
有什么建议吗?
【问题讨论】:
标签: .net pdf itextsharp acrobat
好吧,显然你可以使用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 在 iTextSharp 上。至于保存时丢失的字段,值得注意的是 Fox It Reader 是免费的,并且允许保存可编辑的 PDF。如果这不是一个选项,那么在大多数公司中通常是 Acrobat Standard。您可以使用任意数量的 PDF 打印驱动程序并将编辑后的 PDF 表单打印为 PDF,尽管此时它将是只读的(在某些情况下仍然有用)。
【讨论】:
当然,可以编辑 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 的公司工作。
【讨论】: