WordXML格式解析
前言
Office2003以上,Word可以以XML文本格式存储,这样就可以使用外部程序创建Word文件,而不需要使用Word的对象。也能够自由的打开分析Word文件,或者发布到自己的Web页面,或者其他更多应用。
一个典型的WordXML结构可以是如下的样子:
<?xml version="1.0"?>
<w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml">
<w:body>
<w:p>
<w:r>
<w:t>Hello, World.</w:t>
</w:r>
</w:p>
</w:body>
< /w:wordDocument>
可以用记事本创建一个文件,将上面的XML内容粘贴,并保存为helloworld.xml,在Office Word中打开它,就能看到如上图所示的内容。
这是最简单的WordXML内容,它包括这几部分:
XML的声明和名称空间的指明:
<?xml version="1.0"?>
<w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml">
文档内容
<w:body>…</w:body>
基本节点类型
从body内可以看出,构成实际文本内容的有3种类型节点:
<w:p> 表示一个段落
<w:r>
<w:rPr>
<w:b w:val="on"/>
</w:rPr>
<w:t> 2.0C</w:t>
< /w:r>
<w:b w:val=”on”> 表示该格式串种的文本为粗体。
这样,我们就知道<w:r>表示一个特定的文本格式,稍微复杂点的格式:
字体为粗体,尺寸为是40除2等于20相当于几号字体?,字体名称“Arial”
<w:t xml:space="preserve"> 2.0C</w:t>
中的xml:space="preserve"从字面上理解是保持空格。
<w:p>
< w:pPr>
< w:jc w:val="right"/>
< w:spacing w:line="600" w:lineRule="auto"/>
< /w:pPr>
对齐方向:<w:jc w:val=”right”/> 这儿是右对齐。
行距:<w:spacing w:line=”600” w:lineRule="auto"/> 600是用行距的倍数乘240得出,如果是两倍行距,则是480。这儿应该是2.5倍行距。
由此可见,组装一个WordXML格式的文件是一件比较简单的事情。
这儿的Pr是property的意思,表示这个块中是r(run)或p(paragraph)的格式设置。
一个WordXML的文件结束了吗?可以这样讲,但如果你双击刚才创建的XML文件,有很大机会不会由Word来打开它。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Common\Filter\text/xml
但是,加入这一条语句后,双击打开时,Word将会提示XML的格式不正确,虽然能打开。那是因为还有许多的内容没有声明。我们就先不加这条语句。
页面设置
下面内容设置了页的宽,高,和页的各边距。各项的值均是英寸乘1440得出:
文档设置
<w:docPr>
<w:view w:val="print"/><w:zoom w:percent="100"/>
< /w:docPr>
docPr,就是document property的意思了。
完整的XML文件实例
<w:docPr>
< w:view w:val="print"/><w:zoom w:percent="100"/>
< /w:docPr>
< /w:wordDocument>
这样,一个基本的WordXML就创建完成,当然,一个应用级别的Word文档绝对不仅这些内容,更详细的内容需要参考MS Office SDK。
WordXML格式解析相关推荐
- freemarker导出word文档——WordXML格式解析
前不久,公司一个项目需要实现导出文档的功能,之前是一个同事在做,做了3个星期,终于完成了,但是在项目上线之后却发现导出的文档有问题,此时,这个同事已经离职,我自然成为接班者,要把导出功能实现,但是我看 ...
- WordXML格式解析(应用于Freemarker导出word文档)
[WordXML] 项目中有时需要Word文档的导出/预览功能,使用Freemarker工具可以实现,文档的模板为WordXML格式,类似于html语言,不同标签含义不同,以下是经常用到的一些标签和注 ...
- 转:YUV RGB 常见视频格式解析
转: http://www.cnblogs.com/qinjunni/archive/2012/02/23/2364446.html YUV RGB 常见视频格式解析 I420是YUV格式的一种,而Y ...
- 【Android RTMP】音频数据采集编码 ( AAC 音频格式解析 | FLV 音频数据标签解析 | AAC 音频数据标签头 | 音频解码配置信息 )
文章目录 安卓直播推流专栏博客总结 一. AAC 音频格式解析 二. FLV 音频数据标签解析 1. 分析 FLV 格式中的 AAC 音频格式数据 2. AAC 音频特殊配置 3. AAC 音频数据标 ...
- java 解析日期格式_日期/时间格式/解析,Java 8样式
java 解析日期格式 自Java 几乎 开始以来,Java开发人员就通过java.util.Date类(自JDK 1.0起)和java.util.Calendar类(自JDK 1.1起 )来处理日期 ...
- 日期/时间格式/解析,Java 8样式
自Java 几乎 开始以来,Java开发人员就通过java.util.Date类(自JDK 1.0起)和java.util.Calendar类(自JDK 1.1起 )来处理日期和时间. 在这段时间内, ...
- 3D模型格式解析(OBJ)
文章目录 OBJ格式解析 一.OBJ格式 二.vtkOBJReader源码解析 1.主要部分 总结 OBJ格式解析 通过解读vtk源码中对OBJ文件的读取代码,讲解如何获取obj模型的顶点(verte ...
- c语言组json包,json格式解析和libjson的用法介绍(关于cjson的使用方法)
在阅读本文之前,请先阅读下<Rss Reader实例开发之系统设计>一文. Rss Reader实例开发中,进行网络数据交换时主要使用到了两种数据格式:JSON与XML.本文主要介绍JSO ...
- mysql binlog c++_MySQL binlog的格式解析
我搜集到了一些资料,对理解代码比较有帮助. 在头文件中binlog_event.h中,有描述 class Log_event_header class Log_event_footer 参见[Myst ...
最新文章
- ABP Zero示例项目问题总结
- VF02 会计凭证过账时间
- boost::contract模块实现move的测试程序
- ubuntu install redis/mongo
- 内存恶鬼drawRect
- 在ASP.NET MVC应用程序中随机获取一个字符串
- Ubuntu上安装visual studio code
- Pycharm 简单设置成官方中文版
- ubuntu16.04 系统ghostscript 缺少中文语言包导致字体重叠问题
- 【董天一】什么是IPFS(三)
- Mongodb实验二——分片集群搭建
- html中写页边距,html整体页面边距怎么设置
- 现在公司都不缺人了?软件测试工作经历3年,面试居然被坑了....
- python 浮点数精度不准确_浮点数的 “floor division” (例如在python中)是否会导致精度不准?...
- 关于POS操作的一些文章收集链接
- if+switch 循环
- Java精进-手写持久层框架
- python龙格库塔_龙格库塔积分法
- 安卓 修改键盘确定按钮状态,并获取对应点击事件
- 计算1~100的数之和