使用 iText 库的 TextField 操作

TextField action using iText Library

我正在尝试使用 iTextSharp 库将文本字段的操作添加到 pdf 文件,但它对我不起作用。 这是我在 C#

中的代码
PdfReader reader = new PdfReader("pdf/116700.pdf");
FileStream fs = new FileStream("pdf2/result.pdf", FileMode.Create, FileAccess.Write);

PdfStamper stamp = new PdfStamper(reader, fs);

TextField note1 = new TextField(stamp.Writer, new iTextSharp.text.Rectangle(499, 428, 420, 416), "note1");
note1.Alignment = Element.ALIGN_CENTER;
note1.Text = "0";
PdfFormField ffield = note1.GetTextField();
ffield.SetAdditionalActions(PdfName.BL, PdfAction.JavaScript("app.alert('action!')", stamp.Writer));        
stamp.AddAnnotation(note1.GetTextField(), 1);
stamp.Close();

您创建了一个文本字段小部件注释

PdfFormField ffield = note1.GetTextField();

并为其添加模糊动作

ffield.SetAdditionalActions(PdfName.BL, PdfAction.JavaScript("app.alert('action!')", stamp.Writer));

然后您创建另一个小部件注释(没有模糊操作)并仅将这个新注释添加到 PDF:

stamp.AddAnnotation(note1.GetTextField(), 1);

因此,带有模糊操作的注释永远不会写入 PDF!


如果您将最后一行替换为

stamp.AddAnnotation(ffield, 1);

一切如预期。