有没有办法确定PDF打印时实际显示在PDTextField中的文本?如果我调用setValue然后调用getValue,它将返回所有文本,即使它不会全部显示。
我正在尝试使用有限大小的多行文本字段填写表单,其中包含附加另一页的符号以获取更多详细信息。我想将文本限制为将显示并生成添加的详细信息页面。
感谢您沉迷于PDFbox新手。
答案 0 :(得分:2)
没有直接的方法可以找到它,因为文本布局的细节(如换行符,填充,行间距)隐藏在PlainTextFormatter
包内的非公共类org.apache.pdfbox.pdmodel.interactive.form
内。所以你需要复制那段代码。
PDFBox尝试类似于Adobe Acrobat和Adobe Reader所做的计算,但此类计算的详细信息不属于PDF规范的一部分。因此,进行计算仅对类似的布局模型有效。其他表单填写应用程序的布局模型可能略有不同,因此您的结果将不适用于这些。
除了Acrobat(和PDFBox)放置文本外,尽管它可能会被部分剪裁。查看AlignmentTest.java
单元测试的结果,看看我的意思。因此,人们可能对“拟合”的真正含义有不同的期望。
由于我已经考虑过将有关哪个文本的信息传递回调用应用程序,我已经为此打开了增强请求https://issues.apache.org/jira/browse/PDFBOX-3413。