我有一个pdf模板,我试图在新文档中覆盖它。我需要从模板PDF中获取一些字段并在新PDF中重写它们的值。我这样做:
PdfReader templatereader = new PdfReader("Templates//PDF_Template_Empty.pdf");
PdfDocument template = new PdfDocument(templatereader);
var writer = new PdfWriter(OutputFilepath);
PdfDocument newreport = new PdfDocument(writer);
var fields = PdfAcroForm.GetAcroForm(template, true); //!!!
然后我抓住了例外:
iText.Kernel.PdfException:'没有关联的PdfWriter用于制作 indirects'
我做错了什么以及如何解决? iTextsharp 7。
答案 0 :(得分:2)
错误解释了到底出了什么问题:您没有为名为PdfWriter
的{{1}}实例定义PdfDocument
实例。您为template
创建了PdfWriter
个实例,但从未使用newreport
。
这是应该做的:
newreport
如您所见,不需要PdfReader templatereader = new PdfReader("Templates//PDF_Template_Empty.pdf");
var writer = new PdfWriter(OutputFilepath);
PdfDocument template = new PdfDocument(templatereader, writer);
var fields = PdfAcroForm.GetAcroForm(template, true);
实例。 newreport
实例将template
作为输入,并使用templatereader
创建一个新的PDF作为输出。