确定可以在多行 PDTextField 中显示的文本

Determine the Text that can Display in Multiline PDTextField

有没有办法确定打印 PDF 时实际显示在 PDTextField 中的文本?如果我调用 setValue 然后调用 getValue,它 returns 所有文本,即使它不会全部显示。

我正在尝试使用有限大小的多行文本字段填写表单,该文本字段具有附加另一页以获取更多详细信息的注释。我想将文本限制为将显示和生成添加的详细信息页面的文本。

感谢您纵容 PDFbox 新手。

由于文本布局的细节(例如换行符、填充、行间距)隐藏在非 public class PlainTextFormatter 中,因此无法直接找到它在 org.apache.pdfbox.pdmodel.interactive.form 包内。所以您需要复制该代码。

PDFBox 试图模仿 Adob​​e Acrobat 和 Adob​​e Reader 所做的计算,但此类计算的详细信息不是 PDF 规范的一部分。所以你的计算只对类似的布局模型有效。其他表单填写应用程序的布局模型可能略有不同,因此您的结果将不适用于这些应用程序。

除了 Acrobat(和 PDFBox)之外,还可以放置文本,尽管它可能会被部分剪裁。查看 AlignmentTest.java 单元测试的结果,了解我的意思。因此,人们可能对 'fitting' 的真正含义有不同的期望。

由于我一直在考虑将关于适合的文本的信息传递回调用应用程序,所以我为此打开了一个增强请求 https://issues.apache.org/jira/browse/PDFBOX-3413