确定可以在多行 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 试图模仿 Adobe Acrobat 和 Adobe Reader 所做的计算,但此类计算的详细信息不是 PDF 规范的一部分。所以你的计算只对类似的布局模型有效。其他表单填写应用程序的布局模型可能略有不同,因此您的结果将不适用于这些应用程序。
除了 Acrobat(和 PDFBox)之外,还可以放置文本,尽管它可能会被部分剪裁。查看 AlignmentTest.java
单元测试的结果,了解我的意思。因此,人们可能对 'fitting' 的真正含义有不同的期望。
由于我一直在考虑将关于适合的文本的信息传递回调用应用程序,所以我为此打开了一个增强请求 https://issues.apache.org/jira/browse/PDFBOX-3413。
有没有办法确定打印 PDF 时实际显示在 PDTextField 中的文本?如果我调用 setValue 然后调用 getValue,它 returns 所有文本,即使它不会全部显示。
我正在尝试使用有限大小的多行文本字段填写表单,该文本字段具有附加另一页以获取更多详细信息的注释。我想将文本限制为将显示和生成添加的详细信息页面的文本。
感谢您纵容 PDFbox 新手。
由于文本布局的细节(例如换行符、填充、行间距)隐藏在非 public class PlainTextFormatter
中,因此无法直接找到它在 org.apache.pdfbox.pdmodel.interactive.form
包内。所以您需要复制该代码。
PDFBox 试图模仿 Adobe Acrobat 和 Adobe Reader 所做的计算,但此类计算的详细信息不是 PDF 规范的一部分。所以你的计算只对类似的布局模型有效。其他表单填写应用程序的布局模型可能略有不同,因此您的结果将不适用于这些应用程序。
除了 Acrobat(和 PDFBox)之外,还可以放置文本,尽管它可能会被部分剪裁。查看 AlignmentTest.java
单元测试的结果,了解我的意思。因此,人们可能对 'fitting' 的真正含义有不同的期望。
由于我一直在考虑将关于适合的文本的信息传递回调用应用程序,所以我为此打开了一个增强请求 https://issues.apache.org/jira/browse/PDFBOX-3413。