使用iText生成格式化的TextFields?

时间:2013-09-06 13:06:20

标签: java format itext textfield

iText中有什么方法可以格式化TextField的输入吗?我希望TextField接受一个电话号码“(###)### - ####”,但我不希望用户在输入时必须格式化它。 Pdf支持表单字段上的掩码,有没有办法在iText中执行此操作?

我目前的解决方案是在Acrobat中创建pdf,然后通过iText填充已知字段。但这对于此部署来说并不理想。理想情况下,我会让iText生成整个表单。

感谢您提前获得所有帮助。

1 个答案:

答案 0 :(得分:0)

您可以在表单中添加更改字段内容的JavaScript。例如,请参阅Calculator示例,了解充当Calculator的有趣PDF(显然此应用仅适用于支持JavaScript的PDF查看器)。

创建文本字段时,需要使用setAdditionalActions()方法添加其他操作。您可以选择不同的事件:K用于击键(例如,如果您想在某人填写表格时将每个字符更改为大写,则非常有用),Bl用于模糊(用于处理字段的内容)一旦焦点丢失)等等。

您可以编写自己的文档级JavaScript来格式化字段。有关Calculator示例中使用的JavaScript,请参阅calculator.js。或者您可以使用预定义Adobe Reader的许多AF方法之一,例如AFNumber_Format(我现在没有找到可用方法的概述)。