1

我创建了一个带有“开放式办公室作家”的 pdf 模板,并用 iText 填充了这些字段。在这样的伪代码中:

PdfReader reader = new PdfReader("C:/temp/Template.pdf");
FileOutputStream fileOutputStream = new FileOutputStream("C:/temp/TemplateTest.pdf");
PdfStamper stamper = new PdfStamper(reader, fileOutputStream);
stamper.setFormFlattening(true);
stamper.getAcroFields().setField("description", "This is a important description.");

stamper.close();

现在我只想要“描述”文本中的“重要”一词加粗。我该如何处理?是否可以使用 iText 和子字符串更改 pdf 模板中的给定格式?

4

1 回答 1

1

您已经在 PDF 中定义了一个文本字段以及应该用于该文本字段的字体,例如 Helvetica。在这种情况下,您只能使用该字体。您不能引入其他字体,例如 Helvetica-Bold。

您要查找的不是文本字段,而是富文本字段。在这种情况下,您设置一个富文本值。这个富文本值看起来很像 HTML,但略有不同。您可以查阅 ISO-32000-1 以了解它的不同之处。

您可以使用 iText 填写富文本字段,但...仅当您不展平表单时。因为如果您希望 iText 呈现特殊风格的 HTML,则需要代码来解析该 HTML。实际上:这就是我们在 XFA Worker 中所做的,但这对您没有帮助,因为您没有 XFA 表单,您有一个 AcroForm。

长话短说:阅读我的书的第 8 章,您会找到一个示例,其中我使用字段ColumnText和字段位置填写字段。如果您没有这本书,请查看MovieAds示例。

于 2013-04-18T12:07:45.763 回答