最近实现一个功能,具体需求就是把数据库中的内容转换成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这个工具包也是第一次用,不熟悉里面的内容,这里做下记录。

转载于:https://www.cnblogs.com/timePasser-leoli/p/9199107.html

记Aspose.Word的使用中出现的问题相关推荐

  1. 利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出

    我们知道,一般都导出的Word文档或者Excel文档,基本上分为两类,一类是动态生成全部文档的内容方式,一种是基于固定模板化的内容输出,后者在很多场合用的比较多,这也是企业报表规范化的一个体现. 我的 ...

  2. Aspose.Word 的常见使用(不用模板创建)

    起因 因项目需要,而且使用html转Word的时候,样式不兼容问题,于是只能使用Aspose.Word通过代码生成.下面是通过DocumentBuilder来设计Word的,但是和使用模型拼接的差不多 ...

  3. 利用Aspose.Word控件实现Word文档的操作

    Aspose系列的控件,功能都挺好,之前一直在我的Winform开发框架中用Aspose.Cell来做报表输出,可以实现多样化的报表设计及输出,由于一般输出的内容比较正规化或者多数是表格居多,所以一般 ...

  4. aspose 换行写_利用Aspose.Word控件实现Word文档的操作

    Aspose系列的控件,功能都挺好,之前一直在我的Winform开发框架中用Aspose.Cell来做报表输出,可以实现多样化的报表设计及输出,由于一般输出的内容比较正规化或者多数是表格居多,所以一般 ...

  5. 使用Freemark和aspose.word实现动态word转pdf

    前言 因为公司业务需要实现业务人员提供wodr模板,然后系统填充数据生成pdf文件,本文的想法是通过Freemark填充数据生成word再通过aspose.word把word文档转为pdf文档. 本文 ...

  6. Aspose.Word企业案例:Progetto Adele 使用 Aspose API 从预定义模板自动生成 Word 和 PDF 文件

    关于 Progetto Adele Progetto Adele是一家在物流和国际货运市场运营的软件公司.它成立于 2003 年,由在物流和货运公司软件开发方面具有长期经验的人员管理.在过去的 15 ...

  7. aspose.word删除分页符

    Aspose.word用法都类似,此处使用aspose for java进行操作 项目需要将word去掉所有的分页符,再进行一级大纲为划分的分页 目标文件状态: 思考逻辑:遍历整个paragraphs ...

  8. aspose将word转换为pdf[aspose.word.java 18.11]

    aspose.words.java for 18.11 前言:由于网上找的aspose.word存在许多问题,主要是存在水印,破解版献上,互相交流学习.有问题可联系我微信(shiguangxuanya ...

  9. Aspose Word常用操作

    Aspose Word常用操作 使用Aspose Word操作模版 创建Document对象 常用方法 使用Aspose Word操作模版 刚好最近学到Aspose Word,有些心得,记录下来.下面 ...

最新文章

  1. firefox固定为应用标签的功能很好用
  2. oracle事务数统计,oracle函数与事务
  3. 不可不知的Python模块: collections
  4. VS2017 下载离线MSDN文档
  5. 开发工具链(国内项目)(持续更)
  6. Visual Studio 2010中添加App_Code文件夹注意事项
  7. jquery06 jQuery.extend 给jQuery函数添加、继承 静态方法
  8. python入门经典100例-Python3经典100例(Python3入门习题) 含答案 doc版
  9. 智慧环卫管理系统解决方案
  10. mac系统安装搭载Windows系统虚拟机方法教程
  11. pip‘s dependency resolver does not currently take into account 解决办法
  12. 计算机专业学习资源合集 | 视频电子书资源
  13. 保险知识一:续期收费与续保的区别
  14. 经济学人精读笔记17:无现金时代,电子支付大势所趋
  15. onload与ready方法的区别
  16. AT88SC0104C电子产品硬件加密防盗版方法
  17. 自动驾驶路径规划技术-高速公路路径规划
  18. webSocket协议(聊天室)
  19. 使用QII中的PowerPlay Power Analyzer估算FPGA功耗
  20. 前后端交互—模板引擎的使用 过滤器的制作及使用 简易的template制作

热门文章

  1. 信息与电脑杂志信息与电脑杂志社信息与电脑编辑部2022年第8期目录
  2. 浅谈动感歌词:网易云歌词分析
  3. 分图层加载CAD数据
  4. pcb 布线电容 影响延时--信号跨分割
  5. 关于分销体系是怎么理解的?
  6. 2.css字体 文本属性
  7. 计算机高水平竞赛,国际类高水平的竞赛有哪些?
  8. C. Edgy Trees---(思维题+并查集的运用)---Codeforces Round #548 (Div. 2)
  9. 联想计算机怎样分区,电脑硬盘怎么分区才合理?看完秒懂
  10. 基于51单片机的电子万年历设计