最近做了一个关于Word模板的项目。
主要功能是基于一个Word 2003 XMl 形式的Word文档
1)删除不需要的章节,内容,图片。
2)替换章节,内容,图片。
一.首先是定制一个Schema文件,用来规范Word模板
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="urn:schemas-microsoft.memo"
targetNamespace="urn:schemas-microsoft.memo"
elementFormDefault="qualified">
<xsd:element name="ReplaceBlock" type="ReplaceBlockType"/>
<xsd:element name="ReplaceText" type="ReplaceTextType"/>
<xsd:complexType name="ReplaceBlockType" mixed="true">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:element name="ReplaceBlock" type="ReplaceBlockType" minOccurs="0"/>
<xsd:element name="ReplaceText" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ReplaceTextType" mixed="true">
<xsd:all>
</xsd:all>
</xsd:complexType>
</xsd:schema>
以上就内容就是定制了2各类型
1.ReplaceBlock 用来替换删除章
2.ReplaceText用来替换删文字
详细schema 内容参照 http://www.w3school.com.cn/schema/el_complextype.asp
然后打开Word->Tool->Template and Addin->XMLschema->Addschema (日文版的Word,直接翻译的,英文不知道对不对)
添加后Ctrl+F1打开侧栏,选到XMLDataStruct,然后就可以在Word中圈圈叉叉啦。(PS每个Tag都可以加自己的placeHolder,方便寻找)
最后保存成XML Word形式后,模板就建立好了。
二.替换
简单的说就是根据上面做好的 WordXML 去检索对应的XMLNode,然后把内容换掉。
至于怎么样找到需要替换的XMLNode,可以去MSDN上找一下。
检索就用 Xpath,如果要看WordXML的构造话,可以用XMLEditor,很好用。
Word里面图片保存的形式是Base64编码,要替换的话,把自己本机的图片转成Base64之后,替换掉即可。
就写这么点了,第一篇:)