学习:WordXML格式初步分析

前言

Office2003以上,Word可以以XML文本格式存储,这样就可以使用外部程序创建Word文件,而不需要使用Word的对象。也能够自由的打开分析Word文件,或者发布到自己的Web页面,或者其他更多应用。

一个典型的WordXML结构可以是如下的样子:



  
      
       
         Hello, World.
       

      

  

可以用记事本创建一个文件,将上面的XML内容粘贴,并保存为helloworld.xml,在Office Word中打开它,就能看到如上图所示的内容。

这是最简单的WordXML内容,它包括这几部分:

XML的声明和名称空间的指明:

文档内容

基本节点类型

从body内可以看出,构成实际文本内容的有3中类型节点:
表示一个段落

表示一个样式串,指明它包括的文本的显示样式

表示真正的文本内容

  表示图片背景信息

如果我们需要指明一个文本为粗体,需要怎么办呢?


  
     
  

   2.0C

表示该格式串种的文本为粗体。

这样,我们就知道表示一个特定的文本格式,稍微复杂点的格式:







2.0C

字体为粗体,尺寸为是40除2等于20相当于几号字体?,字体名称“Arial”

2.0C

中的xml:space="preserve"从字面上理解是保持空格。

如果没有这内容的话文本的前后空格将会被Word忽略。

如果我们需要指定一个段的对齐方式,行距要怎么办呢?

这就要设置的属性了。类似于这样:





对齐方向:  这儿是右对齐。

行距:  600是用行距的倍数乘240得出,如果是两倍行距,则是480。这儿应该是2.5倍行距。

由此可见,组装一个WordXML格式的文件是一件比较简单的事情。

将段属性包含在

将文本格式包含在

这儿的Pr是property的意思,表示这个块中是r(run)或p(paragraph)的格式设置。

一个WordXML的文件结束了吗?可以这样讲,但如果你双击刚才创建的XML文件,有很大机会不会由Word来打开它。

这是为什么呢?

我们还需要在合适的地方放置一条语句:


   
   
用来指明这个xml文件的对应处理程序,对应注册表中的键值:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Common\Filter\text/xml

但是,加入这一条语句后,双击打开时,Word将会提示XML的格式不正确,虽然能打开。那是因为还有许多的内容没有声明。我们就先不加这条语句。


动态内容配置

        wsp:rsidRDefault="004E13F1" wsp:rsidP="00445D85">     w:right-chars="-203" w:right="-426" w:first-line-chars="600"
    w:first-line="1920" />     w:fareast="微软雅黑" w:h-ansi="微软雅黑" />     w:val="32" />
    wsp:rsidRPr="000C7604">     w:h-ansi="微软雅黑" w:hint="fareast" />     w:val="32" /><#if emailTitle??>${emailTitle}     wsp:rsidRPr="000C7604">     w:h-ansi="微软雅黑" w:hint="fareast" />     w:val="32" />邮件回访问卷

其中<#if emailTitle??> ...是非空判断。

${emailTitle}是取变量值

<#list contentList as content>
         wsp:rsidRDefault="00445D85" wsp:rsidP="00445D85">     w:ascii="宋体" w:h-ansi="宋体" />     w:val="21" />     w:ascii="宋体" w:h-ansi="宋体" w:hint="fareast" />     w:val="21" /><#if content??>${content}
 

其中<#list contentList as content>...是列表循环


页面设置

下面内容设置了页的宽,高,和页的各边距。各项的值均是英寸乘1440得出:



   
   

下面内容设置了页的页眉页脚:

w:sectPr wsp:rsidR="002C452C">
   
       
           
               
           

           
                My Header
           

       

   

   
       
           
               
           

           
                My Footer
           

       

   


这两段都很直白,就不需要解释了。

文档设置


   

docPr,就是document property的意思了。

表示文档的视图是“print”,视图比例100%

完整的XML文件实例



http://schemas.microsoft.com/aml/2001/core"
xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:w10="urn:schemas-microsoft-com:office:word"
xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml"
xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint"
xmlns:wsp="http://schemas.microsoft.com/office/word/2003/wordml/sp2"
xmlns:sl="http://schemas.microsoft.com/schemaLibrary/2003/core"
w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no"
xml:space="preserve">












Niu don't like Red or Blue! It seems that






Hello world!











Header









Footer







这样,一个基本的WordXML就创建完成,当然,一个应用级别的Word文档绝对不仅这些内容,更详细的内容需要参考MS Office SDK。

你可能感兴趣的:(java基础,xml,java,wordXML)