4、docx4j中模板的使用

docx4j
placeholder image
admin 发布于:2018-10-14 12:43:29
阅读:loading

基本描述

关于模板的实现是日常开发中最常用到的,也是最易于维护的一种功能实现,利用模板可以非常高效的去实现文档内容的布局显示级相关属性的设置,同时利用docx文件作为模板也非常方便的进行二次修改和变更,它的好处不再赘述。

通过运行一列示例发现docx4j的关于模板的实现至少有3-4中方式,模板有常用的jxel表达式的写法、Word自带书签的写法、《》中文括号包裹的写法、Word中开发工具-设计模式实现的写法等等,既然能够读取到文档中的各种内容,自己想如何解析都是可以的,本文(和后文中)均采用类似jxel表达式引擎的方式去深入实现。

给出两种案例去实现基于模板中的变量替换cao作,采用docx4j提供的变量替换的方式,分别是“请假条”和“收入证明”两种单纯变量替换的实现,这两个模板示例中只包括了纯变量替换和含有图片,至于模板中有表格或者动态图片后文会实现。

关于“请假条”案例的模板文件参考为:

image

参考代码

上述含有多个变量的替换,参考代码实现为:

    package cn.chendd.docx4j.examples;

     

    import java.io.File;

    import java.util.HashMap;

     

    import org.docx4j.Docx4J;

    import org.docx4j.openpackaging.packages.WordprocessingMLPackage;

    import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart;

     

    /**

     * 收入证明模板示例

     */

    public class IncomeTemplateTest {

     

       public static void main(String[] argsthrows Exception {

          String templatePath = System.getProperty("user.dir") + "/template/收入证明_template.docx";

          String outPath = System.getProperty("user.dir") + "/template/out/收入证明.docx";

          WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new java.io.File(templatePath));

          MainDocumentPart documentPart = wordMLPackage.getMainDocumentPart();

          HashMap<StringStringmappings = new HashMap<StringString>();

          mappings.put("name""马参军");

          mappings.put("years""5");

          mappings.put("post""攻城狮");

          mappings.put("money""25,000.00");

          mappings.put("moneyChinese""二万五年里");

          mappings.put("address""天宫一号天宫一号天宫一号天宫一号");

          mappings.put("telephone""188188188188");

          mappings.put("year""2018");

          mappings.put("month""09");

          mappings.put("date""11");

          documentPart.variableReplace(mappings);

          Docx4J.save(wordMLPackagenew File(outPath));

       }

      

    }

运行示例

代码运行效果图参考为:

image

关于“收入证明”案例的模板文件参考为:

image

其实这个案例跟上述一样,只不过以前工作中涉及到的Word报表曾经涉及到有盖章的实现,就特地想到收入证明这种单据,是需要企业盖公章的,也就是比上述的工资条的案例多了一个盖章的图片而已,别的不涉及,我想代码你们就不用看了,有请假条的可供参考,没有写不出来的吧。

相关下载

上述案例中相关文件下载

请假条_template.docx

收入证明.docx

收入证明_template.docx

请假条.docx


上述许多内容已经过时和过期了,留存本篇文章仅为方便个人查看,原始文章的信息参考:

原始链接:https://www.chendd.cn/information/viewInformation/other/256.a

最后更新:2018-10-14 12:43:29

访问次数:1272

评论次数:0

点赞个数:8,[相当给力:2,精品文章:4,这不科学:1,路过一下:1]

 点赞


 发表评论

当前回复:作者

 评论列表


留言区