Java 来自用户的长文本输入和PDF生成
我构建了一个web应用程序,它可以看作是一个过于复杂的应用程序表单。存在一组具有给定字符限制的文本区域。表单提交后会发生各种事情,其中之一就是生成PDF 文本将从数据库中查询并插入在iReports中创建的PDF模板中。这很好,但主要的问题是文本过多 根据“平均”文本设置最大字符数。但有时人们更喜欢用大写字母或添加大量换行符来格式化文本。这会导致用户的文本溢出PDF中给定的空间。不幸的是PDF文件必须看起来像一个真正的申请表,所以我不能允许无限的空间 你用了什么方法来解决这个问题Java 来自用户的长文本输入和PDF生成,java,pdf-generation,jasper-reports,validation,ireport,Java,Pdf Generation,Jasper Reports,Validation,Ireport,我构建了一个web应用程序,它可以看作是一个过于复杂的应用程序表单。存在一组具有给定字符限制的文本区域。表单提交后会发生各种事情,其中之一就是生成PDF 文本将从数据库中查询并插入在iReports中创建的PDF模板中。这很好,但主要的问题是文本过多 根据“平均”文本设置最大字符数。但有时人们更喜欢用大写字母或添加大量换行符来格式化文本。这会导致用户的文本溢出PDF中给定的空间。不幸的是PDF文件必须看起来像一个真正的申请表,所以我不能允许无限的空间 你用了什么方法来解决这个问题 清理/限制用
- 清理/限制用户输入
- 基于字体度量计算文本的空间需求
- 提供PDF的预览?(太糟糕了,提交后不允许用户更改其输入…)
作为最后手段,我会将PDF提交给用户进行授权。实际上,用户不应该被赋予更多的工作去做,而且他们无论如何也不会去做。您可以控制生成PDF时使用的字体吗?如果是这样,我会在Monospace系列中寻找字体。这将为给定数量的字符提供一致的长度,而不考虑字数、大小写等。您自己建议的问题解决方案都很好。可能要回答的最重要的问题是,当要在字段中显示的数据不合适时,您的PDF应该是什么样子?你还需要什么“完整答案”吗?当你知道这些问题的答案时,你的选择就会减少 例如,如果一个字段必须限制为1/2页,并且用户有时输入的文本超过1/2页,则您可以 1) 限制用户输入-提交时计算大小(如您所说使用字体度量),并拒绝提交,直到更正。这假设您可以合法地强制用户减少其数据输入。 2) 接受用户输入并在此报告的显示中截断。一些系统使用“…”表示数据已被截断,并可以提供超链接(甚至在PDF中)以获取更多信息 提供预览效果会非常好,但前提是用户善于检查和纠正,并且您的系统能够处理由此产生的额外负载