我正在尝试将新页面添加到 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 添加的。我无法附上模板,但我可以为您提供所有信息。
最佳答案
我看不出你是如何实例化压模的。这是一个关于如何读取 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
关于c# - 使用模板和字段将新页面添加到 iTextSharp 的 PdfStamper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22484617/