用JS模板引擎能高效的生成pdf和word文档,例子中使用了百度的JS模板引擎,其它模板引擎也是可以的。模板的标签使用了XDOC,详细可见:http://www.xdocin.com/xml.html,模板可以可视化设计
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="http://www.xdocin.com/xdoc.js"></script>
<script type="text/javascript" src="http://www.xdocin.com/baiduTemplate.js"></script>
</head>
<body>
<input type="button" οnclick="gen1('pdf')" value="生成PDF1"/>
<input type="button" οnclick="gen2('pdf')" value="生成PDF1"/>
<input type="button" οnclick="gen1('docx')" value="生成Word1"/>
<input type="button" οnclick="gen2('docx')" value="生成Word2"/>
<br/>
<script id="tmpl" type="text/html">
<xdoc version="A.3.0">
<body>
<para heading="1" lineSpacing="28">
<text valign="center" fontName="标宋" fontSize="29"><%=title%></text>
</para>
<para>
<img src="<%=img%>" sizeType="autosize"/>
</para>
<para lineSpacing="9">
<text fontName="仿宋" fontSize="18"><%=content%></text>
</para>
</body>
</xdoc>
</script>
<script type="text/javascript">
function gen1(format) {
var data = {
title: "女性工程师如何获得成功",
img: "http://static.oschina.net/uploads/img/201507/07081910_xKaW.jpg",
content: "\t从我第一次在高中上计算机编程课开始,有一件事情就变得很清楚,这是为数不多能够让我真正感到兴奋的学科之一。"
+ "最初,它只是我尝试的一种选择,但我很快就知 道,工程是我想要学习的专业,也是我希望从事的终身职业。"
+ "工程最让我喜欢的事情是,存在无数的机会去做有意义的工作,而且能够不断地学习新知识。\n"
+ "\t你总能够找到自己需要了解的新技术和趋势,还有打造更好事物的新方法。总而言之,看到一个想法变成独特和创新的有形事物,那真得非常令人心满意足。"
};
XDoc.to(baidu.template('tmpl', data), format, {}, "_blank");
}
function gen2(format) {
var data = {
title: "微软不能放弃手机操作系统的4大原因",
img: "http://static.oschina.net/uploads/img/201507/07080929_IXnr.jpg",
content: "\t微软CEO纳德拉提到,要对一些表现不佳的业务采取“艰难的决定”,此外微软的手机操作系统WP和手机硬件业务持续没有起色,"
+ "一些分析师认为,纳德拉的“艰难的决定”可能指的是彻底放弃微软手机操作系统。最近也有传言称,微软可能推出安卓手机,重点推广本公司的安卓应用软件。\n"
+ "\t围绕微软公司是否会放弃WP(或Windows10移动版)操作系统,近来分析师和媒体发出了不同的声音。"
};
XDoc.to(baidu.template('tmpl', data), format, {}, "_blank");
}
</script>
</body>
</html>