在PDF中,我可以设置按钮
但我需要使用代码执行此操作...我正在以下列方式使用iTextSharp:
pb
是我的按钮...... sURL
是我需要数据的网址... 这是我的代码:
PdfFormField pff = pb.Field;
pff.SetAdditionalActions(PdfName.A, PdfAction.CreateSubmitForm(sURL, null, PdfAction.SUBMIT_XFDF));
af.ReplacePushbuttonField("submit", pff);
这确实用提交操作替换了按钮。如何保持页面重定向或如何在代码中设置它?
我还根据示例尝试了PdfName.AA
和PdfName.U
,我不确定不同的名称是什么。但没有任何作用。 : - /
显然,SetAdditionalActions()
取代了现有的行动。
我也尝试过使用注释,只添加一个不存在的按钮。
答案 0 :(得分:1)
您正在寻找一个名为链式操作的概念,如PrintTimeTable示例所示:
Chunk chunk = new Chunk("print this page");
PdfAction action = PdfAction.javaScript(
"app.alert('Think before you print!');", stamper.getWriter());
action.next(PdfAction.javaScript(
"printCurrentPage(this.pageNum);", stamper.getWriter()));
action.next(new PdfAction("http://www.panda.org/savepaper/"));
chunk.setAction(action);
在这种情况下,我们有一个操作,显示警报,打印页面并重定向到URL。这些操作使用next()
方法相互链接。
在C#中,这将是:
Chunk chunk = new Chunk("print this page");
PdfAction action = PdfAction.JavaScript("app.alert('Think before you print!');", stamper.Writer);
action.Next(PdfAction.JavaScript("printCurrentPage(this.pageNum);", stamper.Writer));
action.Next(new PdfAction("http://www.panda.org/savepaper/"));
chunk.SetAction(action);