我正在尝试向PdfStamper添加新页面,但此代码并未将模板pdf字段添加到压模中。
private void InsertNewPage(PdfStamper stamper, int pageNumber)
{
var pdfReader = new PdfReader(UrlTemplateBlankPage);
pdfReader.SelectPages("1");
stamper.InsertPage(pageNumber, pdfReader.GetPageSize(1));
stamper.GetOverContent(pageNumber).AddTemplate(stamper.GetImportedPage(pdfReader, 1), 0, 0);
//This code doesn't work because the code before is not adding the form
var pdfFormFields = stamper.AcroFields;
var fieldKeys = pdfReader.AcroFields.Fields.Keys;
foreach (var k in fieldKeys.ToList())
{
pdfFormFields.RenameField(k, k + string.Format("_{0:000}", pageNumber));
}
}
我在网上搜索但我无法找到有关我的问题的答案。 我添加的PDF模板中添加了一些Acrobat字段。我无法附上模板,但我可以为您提供所有信息。
答案 0 :(得分:0)
我看不出你如何实例化压模。这是一个关于如何阅读PDF模板并将其分配给压模的示例:
var reader = new PdfReader(TEMPLATE_PATH);
var pdfOutput = new FileStream(PDF_OUTPUT_PATH, FileMode.Create)
var stamper = new PdfStamper(reader, pdfOutput);
之后,您可以使用SetField函数设置字段:
stamper.AcroFields.SetField("FIELD1", "VALUE")
可以使用以下选项使您的可填写PDF不可编辑:
stamper.FormFlattening = true;
否则,您的PDF仍然可以填写。
完成文件处理后,请关闭它们:
stamper.Close();
reader.Close();
有一个关于如何在下一个链接中使用iTextSharp的PdfStamper的示例:http://www.codeproject.com/Tips/679606/Filling-PDF-Form-using-iText-PDF-Library