首先,针对的是docx格式,毕竟与时俱进嘛,07版以后的都采用xml格式了,这就方便对word进行操纵了。
docx格式实际上是一个压缩包文件来的,里面包含了该docx的许多信息,基本都是xml文件格式来的。对xml文件来说,操纵是挺容易的,dom操作在有许多成熟的api。
首先,本实例是采用java语言的,需要进行xml操作,至于poi,docx4j这些,因为感觉不是文档不太好,要嘛就是操作不方便,而且英文就算了,主要是注释很少,让人云里雾里的。所以,嘿嘿,直接用java写,这些操作包就不用了
首先,得明白docx解压后的文件夹是什么,解压后的东西如下
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/e5e027da40f1206a6fa06c70a2f9abc4.png)
“----------------------------------------------------------------------------”
其中,_rels文件夹内容如下:
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/9cd6e34acb2e1a430326d1ff9bfe7e02.png)
就一个文件,里面的内容如下:
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/04100d1b54595bd3b33093a424587a41.png)
里面标识了三个xml文件的位置,主要是指示链接了哪些文件。
“------------------------------------------------------------------------------”
docProps文件夹里面的东西如下:
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/9049a290ac80e0a91a13c79462572043.png)
app.xml指明了这个文档的总体信息,比如多少行,多少空格,单词,页数之类的一些基础信息。
core.xml也是如此,里面弄了创建人啊,时间啊,最后修改人之类的信息。
doc是最主要的文件夹,里面是我们的word文档内容,挺多东西的
(1)其中这里的_rels文件夹下有个
这里面包含了你需要用到的下面的内容,比如说,下面的什么styles.xml啊等等等文件都需要在这里引入,包括需要用到的文件,比如说一个png图片。
(2)media里面放的就是图片,等等其它一些word支持的媒体文件。要使用这些文件,记得在document.xml.rels里引入
(3)theme文件夹下放的是word文档的主题xml文件(包含了各种什么字体啊,颜色啊,等等一堆乱七八糟的东西)
(4)document.xml里放的就是我们的word文档内容了,如果把docx文档比喻成网页,这里面放的就是html文件了。(等等主要详细介绍)
(5)剩下的几个xml文件就是注入脚注,样式之类的xml文件,由于只是介绍盖章,就不介绍了。一般docx批处理不会特意单独去改单独某个docx的样式的。
最后,顾名思义,[Content Types]文件里放的是文件内容类型的信息,截图如下,
Extension是扩展类型,如果在word文档里用到了jpeg图片,这里就要指明使用了image/jpeg的内容类型(其它格式模仿上面)。这里的jpeg可不是指修改了文件后缀就好了,是真正的jpeg格式,如果格式和后缀对不上的话(文件损坏),word要嘛会把格式转换,要嘛就改后缀成格式后缀了。当然了,正常情况下,格式和后缀不会变的。
好了,现在回头讲讲document.xml这个文件。
现在,弄了个word文档,内容如下(随便编的内容和章)
document.xml里面的内容摘要图如下:
上面的内容,随便几个摘要图随便浏览一下就行了,下面我们分析一下。
这个 xml有<w:body>表示主体,w:p 表示一个段落
如:
画线的部分都是一个段落,其中,图片的左上角由于是和申请人在同一行上,所以算是同一段落的。
因此,这份document.xml(用谷歌浏览器打开xml,能合并标签)有段落数量如下:
额,感觉还不错,
现在,按顺序点下来,图片应该是在第四段落。也就是第四个w:p标签里面(当然了,凭肉眼是这么看的,写程序当然不是用看的了)。
该段落如下:
这里面有个w:drawing标签,存放了章图片的信息。