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

时间:2016-07-07 16:08:56

标签: pdfbox

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

我正在尝试使用有限大小的多行文本字段填写表单,其中包含附加另一页的符号以获取更多详细信息。我想将文本限制为将显示并生成添加的详细信息页面。

感谢您沉迷于PDFbox新手。

1 个答案:

答案 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