2015-10-14 54 views
0

我试过不同的变体,但为什么我的按钮不起作用。如何触发通过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类似物的例子,但我不知道这是创建按钮的适当方式。

回答

1

抓住Field代替Appearance

var f = button.Field; 
f.Action = PdfAction.JavaScript("app.execMenuItem('SaveAs')", writer); 
writer.AddAnnotation(f); 
+0

感谢。它对我来说并不明显,而不是java的get/set方法,这些属性应该用在c#中:)现在,你已经打开了我的眼睛 – Salkony

相关问题