如何使用freeMarker生成doc、docx文档

本文详细介绍了如何利用FreeMarker生成doc、docx以及pdf文档,包括FreeMarker的基本概念,doc与docx的区别,以及具体生成doc文档的方法。还特别讨论了生成docx文档的步骤,涉及document.xml、document.xml.rels和图片处理,并指出生成过程中可能遇到的问题,如表格样式循环导致的文件无法打开等。
摘要由CSDN通过智能技术生成

如何使用freeMarker生成doc、docx、pdf文件

freeMarker是什么
doc和docx有什么区别
如何生成doc文档(带图片)
如何生成docx文档,以及将其生成pdf文档

  1. freeMarker是什么

    http://freemarker.foofun.cn/

  2. doc和docx有什么区别
    格式不同
    DOCX是WORD2007及以上版的格式,是一种基于XML的压缩格式。
    DOC是WORD2003及以下版的格式。
    体积不同,docx远大于doc
    doc是单个文件,而docx其实是由一个zip压缩文件更改后缀而来

  3. 如何生成doc文档
    由1可以明白freemarker可以输出文本信息, 而我们的doc其实就是一个文本,所以可以直接使用freemarker可以doc文件,将doc文件,另存为xml文件,修改成动态数据模板,如果带有图片,可直接由图片转成base64格式,再按照普通属性进行替换(此处我们重点说生成docx文档,因为生成pdf文档,poi对freemark生成的doc文档转成pdf无法辨识)

  4. 如何生成docx文档,以及将其生成pdf文档
    docx是一个zip压缩文件,解压后的内容如下:
    这里写图片描述
    这里写图片描述
    这里写图片描述
    主要关注:document.xml (文档结构),document.xml.rels(图片引用关系配置),以及media(存放图片的目录)目录
    还是直接上代码吧
    首先写一个要生成的docx样式,修改后缀为zip,然后将其解压,设置动态数据,修改document.xml 和document.xml.rels文件按照freeMarker数据格式编写
    document.xml (文档结构,橘色部分freemarker需要设置的动态数据):
    普通属性配置
    文档结构,橘色部分freemarker引用document.xml.rels中的id:
    带图片的映射
    document.xml.rels(图片引用关系配置,橘色部分freemarker需要动态生成的图片引用id)
    带图片映射,以及与media目录,图片的相对目录

依赖jar

   <dependency>
           <groupId>org.freemarker</groupId>
           <artifactId>freemarker</artifactId>
           <version>2.3.23</version>
   </dependency>
   <dependency>
        <groupId>com.artofsolving</groupId>
        <artifactId>jodconverter-maven-plugin</artifactId>
        <version>2.2.1</version>
   </dependency
  <dependency>
      <groupId>fr.opensagres.xdocreport</groupId>
      <artifactId>org.apache.poi.xwpf.converter.core</artifactId>
      <version>1.0.5</version>
  </dependency>
  <dependency>
      <groupId>fr.opensagres.xdocreport</
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值