我想在预制的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).
任何帮助都是极好的!
如何将 PDF 表单元素添加到 PDFsharpPdfPage对象?
我知道 AcroForm 是可填写表单的 PDF 元素的最佳格式,但 PDFsharp 库似乎不允许您创建 AcroForm 对象的实例。
我已经能够使用 PDFsharp 生成简单的文档,如下所示:
static void Main(string[] args) {
PdfDocument document = new PdfDocument();
document.Info.Title = "Created with PDFsharp";
// Create an empty page
PdfPage page = document.AddPage();
// Draw Text
XGraphics gfx = XGraphics.FromPdfPage(page);
XFont font = new XFont("Verdana", 20, XFontStyle.BoldItalic);
gfx.DrawString("Hello, World!", font, XBrushes.Black,
new XRect(0, 0, page.Width, page.Height), XStringFormats.Center);
// Save document
const string filename = "HelloWorld.pdf";
document.Save(filename);
}
Run Code Online (Sandbox Code Playgroud)
但我不知道如何添加可填写的表单元素。我猜它可能会使用该page.Elements.Add(string key, PdfItem …
我有来自不同客户/供应商的一些PDF.我的目标是建立一个网络应用程序,潜在客户填写单一形式的数据,然后生成所有PDF文件进行打印和签名.
PDF中包含字段,在adobe reader中您可以单击并键入数据.但是,这是敏感的财务数据,PDF不会让您保存到桌面.当您打开PDF时,adobe reader中实际上有一个警告,它会阻止您保存已完成的表单.我不关心这个功能.我的用户可以保存它,如果他在我自己生成完成的pdf时打开它就会冒险.
问题是我需要生成这些pdf,并将数据注入其中而不改变样式.我想避免手动构建它们,但如果必须的话,我会这样做.如何生成他们给我填写的数据的确切PDF格式?