记Aspose.Word的使用中出现的问题

最近实现一个功能,具体需求就是把数据库中的内容转换成word文档,文档中须要包含标题、目录以及表格信息。java

这里我使用的是Aspose.Word类,这是一个很强大的文档操做工具包,实现了全部操做文档的所须要的功能。node

我使用中遇到了几个问题,最棘手的就是当生成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

字面意思就是文档中有太多的格式或类型了,可是光看字面意思彻底不知道什么意思。无奈进行了百度,可悲的是百度也没有找到相似的问题。app

通常定位到报错代码行,而后分析前面的代码,基本都能找到问题。报错位置以下:工具

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这个工具包也是第一次用,不熟悉里面的内容,这里作下记录。spa

相关文章
相关标签/搜索