記Aspose.Word的使用中出現的問題


最近實現一個功能,具體需求就是把數據庫中的內容轉換成word文檔,文檔中需要包含標題、目錄以及表格信息。

這里我使用的是Aspose.Word類,這是一個很強大的文檔操作工具包,實現了所有操作文檔的所需要的功能。

我使用中遇到了幾個問題,最棘手的就是當生成word時如果數據量太大,執行一段時間后,會報一個錯,而當數據量不是很大時,就不會報錯。具體報錯如下:

 1 java.lang.RuntimeException: java.lang.IllegalStateException: There are too many styles in the document.  2 at com.aspose.words.StyleCollection.zzZ(Unknown Source)  3 at com.aspose.words.NodeImporter.zzZ(Unknown Source)  4 at com.aspose.words.NodeImporter.zzZ(Unknown Source)  5 at com.aspose.words.NodeImporter.zzY(Unknown Source)  6 at com.aspose.words.NodeImporter.zzZ(Unknown Source)  7 at com.aspose.words.NodeImporter.zzY(Unknown Source)  8 at com.aspose.words.NodeImporter.zzZ(Unknown Source)  9 at com.aspose.words.NodeImporter.zzY(Unknown Source) 10 at com.aspose.words.NodeImporter.zzZ(Unknown Source) 11 at com.aspose.words.NodeImporter.zzY(Unknown Source) 12 at com.aspose.words.NodeImporter.zzZ(Unknown Source) 13 at com.aspose.words.NodeImporter.importNode(Unknown Source) 14 at com.epoint.datacenter.controller.exportToWord.ResourcesToWord.drawTabel(ResourcesToWord.java:121) 15 at com.epoint.datacenter.controller.exportToWord.ResourcesToWord.exportToWord(ResourcesToWord.java:93) 16 at com.epoint.datacenter.Test.ExportWord.main(ExportWord.java:10) 17 Caused by: java.lang.IllegalStateException: There are too many styles in the document. 18 at com.aspose.words.StyleCollection.zzZlI(Unknown Source) 19 at com.aspose.words.StyleCollection.zzY(Unknown Source) 20 at com.aspose.words.StyleCollection.zzZ(Unknown Source) 21 ... 14 more

字面意思就是文檔中有太多的格式或類型了,但是光看字面意思完全不知道什么意思。無奈進行了百度,可悲的是百度也沒有找到類似的問題。

一般定位到報錯代碼行,然后分析前面的代碼,基本都能找到問題。報錯位置如下:

NodeImporter importer = new NodeImporter(srcdoc, doc, ImportFormatMode.KEEP_SOURCE_FORMATTING); for (Node node : (Iterable<Node>) nodes) { Node importNode = importer.importNode(node, true); doc.getFirstSection().getBody().appendChild(importNode); }

其實for循環是沒有問題的,因為程序能執行幾分鍾。往上找就看到了NodeImporter的定義,這里面定義了導入節點的樣式,KEEP_SOURCE_FORMATTING表示把引用到的樣式全部導入到母頁面,我就懷疑是不是樣式太多是因為這個引用的樣式過多,於是換成了USE_DESTINATION_STYLES,使用母頁面的樣式,嘗試后問題竟然解決了。當然這個問題不是很難,但是Aspoe.Word這個工具包也是第一次用,不熟悉里面的內容,這里做下記錄。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM