覆盖新文档中的 pdf 字段



我有一个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 来制作 间接的。

我做错了什么以及如何解决它? iTextsharp 7.

该错误准确解释了出错的原因:您没有为名为 templatePdfDocument实例定义PdfWriter实例。您为 newreport 创建了一个 PdfWriter 实例,但从不使用 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作为输入,并将使用 writer 创建新的 PDF 作为输出

最新更新