我有一个非常简单的用例来填充一个acroform。我有一个非多行文本字段。我想调整字体大小以适应文本字段的宽度。
PDF规范提到字体大小为0意味着自动适应宽度。但是PDFBox - 1419& PDFBOX-1402提到pdfbox不支持此功能。
因此我有一些小的逻辑来根据宽度等计算字体大小。但是我在设置字体大小时遇到了问题。
我看到了PDFBox - 1419中提到的行为。
以不正确的字体大小开始。如果我单击该字段,它将正确显示。在字段外单击,它将恢复为错误的显示。
代码:
pdfFormField.getDictionary.setString(COSName.DA, "/Helv 10 Tf 0 g”)
pdfFormField.setValue("Hello")
非常感谢任何指针或帮助。
此类PDF is here
的简单示例答案 0 :(得分:1)
Pdfbox表单字段类在其生命周期的早期将默认外观读入成员变量,而不是跟踪它们所基于的表单字段字典中的更改。因此,在pdfFormField.setValue("Hello")
期间创建外观流时,会使用前 DA 值。
因此,设置默认外观后,必须重新实例化表单字段对象。然后使用此新对象设置字段值。
有关示例代码,请查看this answer to How to set the text of a PDTextbox to a color?;此处,在设置字段值之前,文本字段的现有 DA 值将更改为包含颜色设置操作。