2009-10-29 34 views
1

我已經構建了一個可視爲過於複雜的應用程序窗體的Web應用程序。有一堆文字區域具有給定的字符限制。表單提交後發生各種事情,其中​​一個是PDF生成。來自用戶和PDF生成的長文本輸入

從數據庫中查詢文本並插入在iReports中創建的PDF模板中。這工作正常,但主要的痛苦是文字溢出。

最大字符數根據「平均」文本設置。但有時候人們更喜歡用CAPS編寫或添加大量換行來格式化文本。這些會導致用戶的文本溢出PDF中給出的空間。不幸的是,PDF文件必須看起來像一個真正的申請表,所以我不能允許無限的空間。

你用什麼樣的方法來解決這個問題?

  • 清理/限制用戶輸入?
  • 根據字體指標計算文本的空間需求?
  • 提供PDF預覽版嗎? (太糟糕了不允許用戶提交後更改其輸入...)

回答

1

理想的情況下,計算基於指標的要求。我不知道iReports如何處理文本,但是使用iText,它將所有內容都放在一邊,您只需將數據作爲流式文檔呈現,所以我們不用擔心文本溢出。

但是,iReport可能不支持該功能,或者您可能需要將PDF版面設置在某個範圍內。我會嘗試清理輸入(即:如果全部大寫,小寫/句子大小寫/正確的大小寫),請刪除額外的空格。如果清潔輸入不能可靠地完成,或者人們仍然越過,那麼我也會限制它。

作爲最後的手段,我會提供用戶授權的PDF。真的,用戶不應該有更多的工作要做,他們也不會去做。

0

您是否可以控制生成PDF時使用的字體?如果是這樣,我會在Monospace系列中查找字體。這會給你一個給定數量的字符長度一致的長度,無論是puncuation,大小寫等。

1

你自己建議的解決方案,你的問題都很好。可能需要回答的最重要的問題是,當數據在字段中顯示不適合時,您的PDF應該是什麼樣子?你是否曾經需要「完整答案」來做其他事情?當你知道這些答案時,你會減少你的選擇。

例如,如果一個字段必須限制爲1/2頁,並且用戶有時會輸入超過1/2頁的文本,您可以選擇 1)限制用戶輸入 - 在提交時計算大小(使用字體度量,如你所說)並拒絕提交,直到更正。這假定您可以合法地強制用戶減少他們的數據輸入。 2)接受用戶輸入並截斷此報告的顯示。某些系統使用「...」表示數據已被截斷,並且可以提供超鏈接(即使在PDF中)以獲取更多信息。

提供預覽功能非常有效,但前提是用戶擅長檢查和糾正,而且系統可以處理額外的負載。