1. 程式人生 > >使用百度JS模板引擎生成PDF和Word文件

使用百度JS模板引擎生成PDF和Word文件

用JS模板引擎能高效的生成pdf和word文件,例子中使用了百度的JS模板引擎,其它模板引擎也是可以的。模板的標籤使用了XDOC,詳細可見:http://xdoc.aliapp.com/xml.html,模板可以視覺化設計

<!DOCTYPE html>
<html>
  <head> 
    <meta charset="UTF-8">
    <script type="text/javascript" src="http://xdoc.aliapp.com/xdoc.js"></script> 
    <script type="text/javascript" src="http://xdoc.aliapp.com/baiduTemplate.js"></script> 
  </head>  
  <body> 
    <input type="button" onclick="gen1('pdf')" value="生成PDF1"/>
    <input type="button" onclick="gen2('pdf')" value="生成PDF1"/>
    <input type="button" onclick="gen1('docx')" value="生成Word1"/>
    <input type="button" onclick="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>