我有一个PDF模板(使用Adobe Livecycle designer设计),它有一个子窗体和一个文本框。这两个对象的属性设置为float
。这些对象的高度设置为Autofit
。所有这些对象的父母高度都被设置为AutoFit
。如何根据文本内容显示浮动文本字段?
我的意图是根据我们输入文本字段的文本内容来增加文本字段的高度。
当我从Adobe设计人员预览模板时,生成的预览PDF将文本字段显示为浮动(基于我输入的测试数据)。
对于我们的应用目的,我们使用iText。
基本上,我们加载这些预定义的模板,并使用iText API将数据填入这些字段。
的iText的当前版本中,我们使用的是iText的5.1.3
...
Document document = new Document();
document.open();
PdfReader reader = new PdfReader(<inputTemplate>);
ByteArrayOutputStream aStream2 = new ByteArrayOutputStream();
PdfStamper stamper2 = new PdfStamper(reader, aStream2);
AcroFields form = stamper2.getAcroFields();
form.setField("<fieldname>", "<fieldvalue>");
...
等。
这样生成的PDF只显示符合文本框大小的文本,基本上忽略溢出。
希望我已经给出了我遇到的问题的足够的描述。我想动态地嵌入内容并使PDF的其余部分可浮动。我想知道如何使用iText达到这个目标?
非常感谢您的回复。我的要求是一个30页的文档,其中大部分是静态文本,其中包含数据元素(如checkfields,$ amount字段等)。因此我们一直使用AcroFields.setField(...)方法。在某些地方,我需要嵌入(内联)动态数据(如NOTES)(如果可用)。传统上,我们将这些笔记作为展品附加到文档的末尾,但是我正在探索是否可以嵌入内嵌,仍然保留静态文本的其余部分。感谢您对我如何实现这一目标的想法?我还需要为页码/ totalPages添加邮票。 – user1646972
为什么不在注释中使用注释? (如果您要将纸币打印在纸上,这可能不是一个选项。) –
对不起,我应该更具体。NOTES的意思是我从数据库中获取的一些文本,并将其呈现为PDF上的特定部分。现在,这些数据可能存在,可能不存在,并且可能有任何长度。所以提交的PDF应该有标题的部分,并应显示文本(如果存在),否则继续下一节。我正在使用一种替代方法,将整个30页文档分成多个模板。这使我可以动态生成包含这些文本字段占位符的整个页面。并将合并此页与其余。 – user1646972