因为本人长期从事Oa相关项目的开发,所以处理word文档,Pdf,Excel等是在所难免的。

1.需求      处理Excel 能够用jxl        或者poi

2需求     用户在系统上填写信息,保存后导出标准的word文档。用户在系统上填写的信息我们用富文本编辑工具kindEditor。这个插件能够将用户从word文档拷贝的表格标签保存。可是图片信息须要另行上传。 如今问题出来了,我们要将这些包括图片。表格,特殊符号的东东生成word文档。

假设是单纯的没有特殊格字符。图片等信息,假设要生成word文档的时候能够用java+Freemark 模版的做法,详细作法

用word编辑好模版。将模版另存为 office 2003 xml 格式,然后打上对应的标签,最后将模版后缀改为.ftl即freemarker模版后缀就可以。

假设有内容中有图片。并且图片位置不固定,这样是须要用java + velocity 模版的做法。详细流程将编辑好的word模版另存为.mht即单网页文档。

最后调整后缀为.vm就可以。

可是这个处理过程图片是保存不了的, 这个须要配合java2word。利用java+velocity 生成word文档。在往文档里面插入内容的时候能够用正則表達式替换图片标签为特殊的字符串。等到文档声称完成后,採用java2word工具里面的查找替换功能将图片插入咱们内容增加的特殊字符位置。

假设想要效果标准的word文档,能够用itext 我用的是itext 2.1.7 一共三个包,当中一个是亚洲包,这个是支持中文的,利用litext能够用代码画出标准的word文档,特别是对待分页以及表格格式要求严格的用户。

上面说的java + velocity是暂时方案。事实上最简单的解决富文本编辑的问题时用插件,我们为客户购买了千航 即NTKO的office 编辑插件,我们买的是跨平台版的。这个插件能够

让用户在线编辑word文档并将文档保存到数据库。可是用这个插件可能系统执行初期,须要花费非常大精力去运维。由于用户电脑的环境不是咱们开发者可以左右的。等到一个周期过去之后效果基本上会好起来。

java 处理word文档 (含图片,表格内容)的更多相关文章

  1. [转载]java获取word文档的条目化内容

    在开发Web办公系统或文档系统时,PageOffice组件是众所周知的在线处理微软word/ppt/excel文档的强大工具,它对WORD文档的各种处理在API层面进行了封装,屏蔽了Office VB ...

  2. [原创]java获取word文档的条目化内容

    在开发Web办公系统或文档系统时,PageOffice组件是众所周知的在线处理微软word/ppt/excel文档的强大工具,它对WORD文档的各种处理在API层面进行了封装,屏蔽了Office VB ...

  3. 2018-10-04 [日常]用Python读取word文档中的表格并比较

    最近想对某些word文档(docx)的表格内容作比较, 于是找了一下相关工具. 参考Automate the Boring Stuff with Python中的word部分, 试用了python-d ...

  4. 使用Java POI来选择提取Word文档中的表格信息

    通过使用Java POI来提取Word(1992)文档中的表格信息,其中POI支持不同的ms文档类型,在具体操作中需要注意.本文主要是通过POI来提取微软2003文档中的表格信息,具体code如下(事 ...

  5. C# 在word文档中复制表格并粘帖到下一页中

    C# 在word文档中复制表格并粘帖到下一页中 object oMissing = System.Reflection.Missing.Value;            Microsoft.Offi ...

  6. 判断pdf、word文档、图片等文件类型(格式)、大小的简便方法

    判断pdf.word文档.图片等文件类型(格式).大小的简便方法 很久没发文了,今天有时间就写一下吧. 关于上传文件,通常我们都需要对其进行判断,限制上传的类型,如果是上传图片,我们甚至会把图片转化成 ...

  7. 使用Java生成word文档(附源码)

    当我们使用Java生成word文档时,通常首先会想到iText和POI,这是因为我们习惯了使用这两种方法操作Excel,自然而然的也想使用这种生成word文档.但是当我们需要动态生成word时,通常不 ...

  8. 利用java从docx文档中提取文本内容

    利用java从docx文档中提取文本内容 使用Apache的第三方jar包,地址为https://poi.apache.org/ docx文档内容如图: 目录结构: 每个文件夹的名称为日期加上来源,例 ...

  9. java 在MySQL中存储文件,读取文件(包括图片,word文档,excel表格,ppt,zip文件等)

    转自:https://blog.csdn.net/u014475796/article/details/49893261 在设计到数据库的开发中,难免要将图片或文档文件(如word)插入到数据库中的情 ...

随机推荐

  1. python继承 super()

    写这篇博文,始于以下问题的探究: #coding:utf-8 class A(object): def __init__(self): print 'enter A' print 'leave A' ...

  2. NodeJS学习笔记 (3)域名解析-dns(ok)

    域名解析:dns.lookup() 比如我们要查询域名 www.qq.com 对应的ip,可以通过 dns.lookup() . var dns = require('dns'); dns.looku ...

  3. js Date() 时间函数处理 关于 toLocaleDateString()

    toLocaleDateString()方法的真正含义为「根据本地时间把Date对象的日期部分转换为字符串」,这意味着:在不同的浏览器或者服务器中,我们可能得到不同的字符串. 例如,将 Chrome ...

  4. 浅谈python 中正则的一些函数

         主要的函数有  : match() search() findall() group() groups() split()  match (): 含义  开头匹配,匹配成功返回一个对象失败则 ...

  5. 紫书 例题11-10 UVa 1349 (二分图最小权完美匹配)

    二分图网络流做法 (1)最大基数匹配.源点到每一个X节点连一条容量为1的弧, 每一个Y节点连一条容量为1的弧, 然后每条有向 边连一条弧, 容量为1, 然后跑一遍最大流即可, 最大流即是最大匹配对数 ...

  6. 【BZOJ 1303】 [CQOI2009]中位数图

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 注意是1..n的排列. 设b的位置为i. 设i右边的数字,比b大的为1,比b小的为-1. (i左边的位置数字也一样设置成1和-1 则 ...

  7. Docker和虚拟机的区别

    这是docker官网的图,可以看到虚拟化技术通过Hypervisor(虚拟机管理系统)为每个app启动一个Guest OS(客户机操作系统),也就是为每个app启动一个虚拟机.比较直观地说,vm通过H ...

  8. [React] Use React Fragments to make your DOM tree cleaner

    In this lesson, we will look at Fragments and how they are useful in achieving a cleaner DOM structu ...

  9. android删除表和清空表

    删除某一表: //删除某一个表 public void dropTable(SQLiteDatabase db){ db.execSQL("drop from tab_name") ...

  10. spark groupByKey 也是可以filter的

    >>> v=sc.parallelize(["one", "two", "two", "three", ...