如何在iText的多行AcroField中使用制表符?

我正在处理的项目有一个PDF文件,用作生成另一个最终PDF的模板 .

该模板有几个表单域 . 要渲染最终文档,我使用iText打开模板,找到所有表单域并填写所需数据 .

现在需要我在1个多行acrofield中渲染一个类似于表格的布局 .

我需要填写的字段是这样的:

Monday\tFrom 10:00\tUntil 12:00
Tuesday\tFrom 20:00\tUntil 22:00

我之前在字段中使用了\ n换行,这似乎有效 . 但是,标签不会显示 . 有什么办法可以在多行字段中使用制表符吗?

我尝试过使用html实体/ unicode表示,但这似乎也不起作用 .

回答(1)

2 years ago

此上下文中的选项卡命令是某种锚点的横向移动(例如,跳转到先前定义的点,例如下一个字段,下一列等),并且在单个字段中,您真的不喜欢没有任何目标可以跳转到 .

如果您可以自由地将类似于表格的布局作为表格进行操作,那么您的Tab字符可以按预期运行,并且您将拥有能够在列中正确包装长条目的备份保险,而不是可能具有他们错误地进入下一个专栏,并在那里补充内容 .

如果你被绑定到当前配置,另一个可能对你有用的建议是使用等宽字体,这样你的所有字符都是固定的宽度(例如Courier),弄清楚每个模拟列的最大宽度是多少在这些字符中,计算您在当前列中放置的字符数,然后发出正确数量的空格以转到该位置的下一列 .

因此,例如,如果该字段中的模拟列每个都是15个字符宽,那么“星期一”将消耗6个字符,之后您发出9个空格以标签到下一列,在那里放置“从10:00开始”,再发出5个空格,在那里放“直到12点”,你就完成了这一行 . 下一个将整齐地排列在它下面,依此类推 .