我想在预制的PDF文档中填写表单字段,但是在运行时我收到了AcroForm的Null Refrence错误.
string fileN4 = TextBox1.Text + " LOG.pdf";
File.Copy(Path.Combine(textBox4.Text + "\\", fileN4),
Path.Combine(Directory.GetCurrentDirectory(), fileN4), true);
// Open the file
PdfDocument document = PdfReader.Open(fileN4, PdfDocumentOpenMode.Modify);
PdfTextField currentField = (PdfTextField)(document.AcroForm.Fields["<CASENUM>"]);
//const
string caseName = TextBox1.Text;
PdfString caseNamePdfStr = new PdfString(caseName);
//set the value of this field
currentField.Value = caseNamePdfStr;
// Save the document...
document.Save(fileN4);
Run Code Online (Sandbox Code Playgroud)
PdfTextField currentField = (PdfTextField)(document.AcroForm.Fields["<CASENUM>"]);
错误发生的地方也是如此 .它接缝表明AcroForm甚至没有认识到这些领域.
另一种选择是在PDF中查找和替换文本(不使用由于许可而无法使用的itextsharp).
任何帮助都是极好的!
可能重复:
在C#中取消订阅匿名方法
我有一些Panels,在创建时,他们被委派为可点击:
int z2 = z;
PicBx[z].Click += delegate { clicked(z2, null); };
Run Code Online (Sandbox Code Playgroud)
如果程序要求它,我希望能够删除它.我试过用:
int z2 = z;
PicBx[z].Click -= delegate { clicked(z2, null); };
Run Code Online (Sandbox Code Playgroud)
但它没有用.有没有办法从中删除可点击的委托?
我有一些代码可以创建带有图片框的面板.我想告诉我点击了哪个图片框.我正在使用以下内容:
PicBx[z].Click += new EventHandler(clicked);
Run Code Online (Sandbox Code Playgroud)
我需要为点击分配一个值吗?或者有没有办法只显示你点击的内容?