使用iTextSharp压模填充PDF中的空白字段
本文关键字:空白 字段 PDF 填充 iTextSharp 使用 | 更新日期: 2023-09-27 18:00:02
当我在等待有人创建一个可填写的PDF供我在项目中使用时,我在编写代码时用一个可填的纳税单代替了它。下面的代码填写了税务PDF表格,但当我用我们的可填写PDF表格代替税务表格时,它就不再有效了。我已经验证了字段名称的正确性(通过检查acroFields中的字段)。为什么我的表格不填?(模板是可填写的表格)
try
{
if (!string.IsNullOrWhiteSpace(template))
{
pdfMemoryReader = new PdfReader(template);
pdfMemoryReader.RemoveUsageRights(); // prevents the "This document enabled extended features in Adobe Reader...." message
PdfStamper pdfMemoryStamper = null;
try
{
pdfMemoryStamper = new PdfStamper(pdfMemoryReader, memoryStream);
AcroFields acroMemoryFields = pdfMemoryStamper.AcroFields;
acroMemoryFields = PopulatePDF(studentId, termId, acroMemoryFields, PDFFields);
pdfMemoryStamper.FormFlattening = true;
pdfMemoryStamper.Writer.CloseStream = false;
if (pdfMemoryStamper != null)
{
pdfMemoryStamper.Close();
}
memoryStream.Position = 0;
}
finally
{
pdfMemoryReader.Close(); //this supposedly closes the underlying stream
}
}
}
catch
{ }
return memoryStream;
和PopulatePDF(我也验证了PDF字段。StudentLName有一个值):
public AcroFields PopulatePDF(Guid studentId, Guid termId, AcroFields acroFields, PDFViewModel PDFFields)
{
SharedInfo(studentId, termId, PDFFields);
acroFields.SetField("[StudentLName]", PDFFields.StudentLName);
acroFields.SetField("[StudentFName]", PDFFields.StudentFName);
acroFields.SetField("[Grade]", PDFFields.StudentFName);
}
你知道为什么这份新表格不能填吗?为了使用iTextSharp,表单是否需要一些属性?iTextSharp是版本4.1.2.0
答案是去掉括号。这是由观察窗口"添加"的。