我有一个带有表单字段的 PDF 模板,我使用iText 7.1.0来替换不同表单字段中的一些占位符文本,该模板工作正常:
PdfReader reader = new PdfReader(pdf_template);
PdfDocument pdf = new PdfDocument(reader, new PdfWriter(pdf_output));
PdfAcroForm form = PdfAcroForm.GetAcroForm(pdf, true);
form.GetField("Vertragsnummer").SetValue("12345");
form.FlattenFields();
pdf.Close();
reader.Close();
Run Code Online (Sandbox Code Playgroud)
现在我有一个表单域,它的选项设置为允许富文本格式,因为有些部分带有粗体等。在表单域标准文本中,我又要替换占位符。
目前我有以下代码:
PdfFormField tf_maintext = form.GetField("maintext");
tf_maintext.SetRichText(tf_maintext.GetRichText());
Run Code Online (Sandbox Code Playgroud)
现在我需要替换占位符,但我没有找到任何适用于 C# 的解决方案。
对于普通表单字段,我可以使用
PdfFormField kdnr = form.GetField("Kundennummer");
kdnr.SetValue(kdnr.GetValueAsString().Replace("7777777777", "1111111111"));
Run Code Online (Sandbox Code Playgroud)
Replace实现这一点的正常功能。
但是我需要一个解决方案来替换富文本格式字段中的文本,以确保格式在之后仍然存在。
我怎样才能做到这一点?