如何触发通过 iTextSharp 创建的按钮操作
How to fire a button action created via iTextSharp
我尝试了不同的变体,但有些为什么我的按钮不起作用。
var fileName = "buttonFile.pdf";
using (var fs = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None))
using (var doc = new Document(PageSize.A4))
using (var writer = PdfWriter.GetInstance(doc, fs))
{
doc.Open();
var button = new PushbuttonField(writer, new Rectangle(300, 300, 330, 330), "Text")
{
Text = "Click meh!"
};
PdfAppearance theButton = button.GetAppearance();
theButton.SetAction(PdfAction.JavaScript("app.execMenuItem('SaveAs')", writer), 300, 300, 330, 330);
writer.AddAnnotation(button.Field);
doc.Close();
}`
我没有看到任何通过 iTextSharp 创建按钮的代码,所以我尝试使用来自 java 类似物的示例,但我不确定这是创建按钮的合适方法。
抓住 Field
而不是 Appearance
:
var f = button.Field;
f.Action = PdfAction.JavaScript("app.execMenuItem('SaveAs')", writer);
writer.AddAnnotation(f);
我尝试了不同的变体,但有些为什么我的按钮不起作用。
var fileName = "buttonFile.pdf";
using (var fs = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None))
using (var doc = new Document(PageSize.A4))
using (var writer = PdfWriter.GetInstance(doc, fs))
{
doc.Open();
var button = new PushbuttonField(writer, new Rectangle(300, 300, 330, 330), "Text")
{
Text = "Click meh!"
};
PdfAppearance theButton = button.GetAppearance();
theButton.SetAction(PdfAction.JavaScript("app.execMenuItem('SaveAs')", writer), 300, 300, 330, 330);
writer.AddAnnotation(button.Field);
doc.Close();
}`
我没有看到任何通过 iTextSharp 创建按钮的代码,所以我尝试使用来自 java 类似物的示例,但我不确定这是创建按钮的合适方法。
抓住 Field
而不是 Appearance
:
var f = button.Field;
f.Action = PdfAction.JavaScript("app.execMenuItem('SaveAs')", writer);
writer.AddAnnotation(f);