通过freemarker⽣成⼀个word,解决⽣成的word⽤wps打开有问题的问题,
解决。。。
通过freemarker制作word⽐较简单
步骤:制作word模板。制作⽅式是:将模板word保存成为xml----在xml的word模板中添加相应的标记----将xml的word⽂件的后缀名改成ftl⽂件(要注意的是⽣成xml格式要是2003格式的xml,也就是说拿到的word模板得是2003格式的,否则⽤wps打开word将会出现问题)
详细步骤如下:
1. 模板制作(将要动态显⽰的数据打上标记,这个标记是freemarker中的EL标记,要注意的是,要控制值为空的情况,下⾯${(site.wzmc)?default(“”)}标识当
⽹站名称为空的时候显⽰空值,如果这⾥如果不做控制,在实际项⽬中会显⽰错误!)
另外要注意的是:
⼀、不要直接在word中替换掉⽂字的⽅式添加标记,这种会有问题。
⼆、不要使⽤Eclipse对xml⽂件进⾏格式化,这种⽣成word的时候会提⽰⽂档有问题。解决这个的问题是通过firstobject对word的xml进⾏格式化,对xml进⾏编辑。(使⽤firstobject打开带有中⽂⽂件名的xml⽂件的时候,会出现问题,建议使⽤英⽂word⽂档名称),或者使⽤XMLViewer
其中,要想软件能够格式化xml代码,需要进⾏设置,设置⽅式是:打开firstobject----Tools-----Preferences------Format-----Tabs
点击Indent,结果xml变成了有格式化的,效果图如下:
常见标签:
⾏标记:
<w:p w:rsidR="00790C22"w:rsidRPr="00C07F75" w:rsidRDefault="00790C22"w:rsidP="004018B7">
标识是⼀个表格的标签
<w:tbl></w:tb1>
表格⾏:
<w:trw:rsidR="00790C22" w:rsidRPr="00C07F75"w:rsidTr="004018B7"></w:tr>
表格中的单元格:
<w:tc></w:tc>
循环输出数据的⽅式
</w:tblPr>
properties文件用什么打开<w:tblGrid>
<w:gridCol w:w="2235"/>
<w:gridCol w:w="6287"/>
</w:tblGrid>
<w:tr w:rsidR="00790C22" w:rsidRPr="00C07F75" w:rsidTr="004018B7">
<w:tc>
<w:tcPr>
<w:tcW w:w="2235" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
<w:vAlign w:val="center"/>
</w:tcPr>
<w:p w:rsidR="00790C22" w:rsidRPr="00C07F75" w:rsidRDefault="00790C22" w:rsidP="004018B7">
<w:pPr>
<w:jc w:val="center"/>
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:eastAsia="⿊体" w:hAnsi="Times New Roman"/>
<w:sz w:val="24"/>
<w:szCs w:val="24"/>
</w:rPr>
</w:pPr>
<w:r>
linux是什么操作系统主要用在<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:eastAsia="⿊体" w:hAnsi="Times New Roman" w:hint="eastAsia"/> <w:sz w:val="24"/>
<w:szCs w:val="24"/>
</w:rPr>
<w:t>问题名称</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="6287" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
<w:vAlign w:val="center"/>
</w:tcPr>
<w:p w:rsidR="00790C22" w:rsidRPr="00C07F75" w:rsidRDefault="00790C22" w:rsidP="004018B7">
<w:pPr>
<w:jc w:val="left"/>
cpu的多线程体现在哪儿
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:eastAsia="宋体" w:hAnsi="Times New Roman"/>
<w:sz w:val="24"/>
<w:szCs w:val="24"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:ascii="Times New Roman" w:eastAsia="宋体"
hbase和kudu的区别w:hAnsi="Times New Roman" w:hint="eastAsia" />
<w:sz w:val="24" />
<w:szCs w:val="24" />
</w:rPr>
<w:t>${(problemInfo.problemName)?default("")}</w:t>
</w:r>
</w:p>
</w:tc>
</w:tr>
这⾥⾯的⾏删除
</w:tbl>
<w:p w:rsidR="007F35A8" w:rsidRPr="007F35A8" w:rsidRDefault="007F35A8" w:rsidP="007F35A8" /> </#list>
另外,往⽂档中插⼊图⽚的时候,在做模板的时候要往模板中插⼊⼀个图⽚,然后打开⽂档,然后替换掉base64转码的图⽚部分。
hive os中文版1. 将图⽚资源变成base64加密后的图⽚的代码
将图⽚转成base64串的⽅式:
1. 下⾯是出word⽤的相关的类:
读取路径⽤的TemplateUtil⼯具类
配置⽂件路径截图:
jigsawFreeMarkerUtil⼯具类
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论