起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8489|回复: 4

[分享] 从数据库中查出数据,填入word模板,并生成word和pdf文档

  [复制链接]

32

主题

91

帖子

397

积分

中级会员

Rank: 3Rank: 3

积分
397
QQ
发表于 2015-7-30 15:24:37 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
本帖最后由 justepcjl 于 2015-7-30 16:35 编辑

转自:使用X5生成复杂的word合同模板()
http://bbs.wex5.com/forum.php?mod=viewthread&tid=71710

第一部:首先要有制作word模板;首先将word转换为.xml文件(word2003),然后,在转换为.ftl文件。(要注意编码格式,乱码有时候清一下缓存,等                   等)这个ftl文件中最重要的是下面蓝色的,${xx},其中xx为map数据中的key。这个可以在.xml文件写好,在转换为.ftl文件。                                                                                <w:r wsp:rsidRPr="003A7488">
                                                        <w:rPr>
                                                                <w:rFonts w:ascii="仿宋_GB2312" w:fareast="仿宋_GB2312" w:hint="fareast"/>
                                                                <wx:font wx:val="仿宋_GB2312"/>
                                                                <w:sz w:val="30"/>
                                                                <w:sz-cs w:val="30"/>
                                                        </w:rPr>
                                                        <w:t>联系电话</w:t>
                                                </w:r>
                                                <w:r>
                                                        <w:rPr>
                                                                <w:rFonts w:ascii="仿宋_GB2312" w:fareast="仿宋_GB2312" w:hint="fareast"/>
                                                                <wx:font wx:val="仿宋_GB2312"/>
                                                                <w:sz w:val="30"/>
                                                                <w:sz-cs w:val="30"/>
                                                                <w:u w:val="single"/>
                                                        </w:rPr>
                                                        <w:t> </w:t>
                                                </w:r>
                                                <w:r>
                                                        <w:rPr>
                                                                <w:rFonts w:ascii="仿宋_GB2312" w:fareast="仿宋_GB2312" w:hint="fareast"/>
                                                                <wx:font wx:val="仿宋_GB2312"/>
                                                                <w:color w:val="000000"/>
                                                                <w:kern w:val="0"/>
                                                                <w:sz w:val="24"/>
                                                        </w:rPr>
                                                        <w:t>${fLXDH}</w:t>
                                                </w:r>

第二部:前端页面js:
       第一部分js:其中fid是要查询的数据的主键,根据他查询出数据,放进map,然后填充到word模板。
       mainActivity.trigger6Click = function(event){
        var dataMain = justep.xbl("dataMain");
        var fid = dataMain.getCurrentID();  //得到该条数据记录,就是要打印的调解协议书.
        if(!fid) {
                return;
                   }
        createDoc(fid, "_xys", "农村土地承包经营权纠纷调解协议书");        
        };

        第二部分js: createDoc其实就是一个ajax访问CreateDoc(action方法),第四部中讲的就是这个action.后面那个setURL就是打开windowsDialog.
        ,其中子页面就是第三部中要讲的。
        function createDoc(fid, type, name) {
                var actionParam = new justep.Request.ActionParam();
                actionParam.setString("fid", fid);
                actionParam.setString("type", type);
                justep.Request.sendBizRequest2({
                          dataType : "application/json",
                          action : "CreateDoc",
                          parameters : actionParam,
                         callback : function(result) {
                                 if (result.state) {
                                       var res = result.response;
                                       getURL(res,name);
                                } else {
                                         throw new Error("调用失败!|" + result.response.message);
                                }
                        }
               });
        }

        function getURL(res,name) {
                  var runner = justep.xbl("windowRunner1");          //这儿是一个windowDilog.
                  runner.setURL("/UI/LandManagerSys/LandQueriesMgr/process/CBHTQuery/docView.w");
                  runner.setTitle(name);
                  runner.open({
                         res:res,
                         name:name
                    });        
          }

第三部分:
          其中有两个按钮,一个div,div的id问pdf,就是第一个function中,也就是windowsReceive事件中最后在pdf div中,添加了pdf对象。
          另外有两个按钮。这个需要引用js文件: pdfobject.zip (1.04 KB, 下载次数: 1132)

275

主题

1012

帖子

1695

积分

金牌会员

Rank: 6Rank: 6

积分
1695
QQ
发表于 2016-9-29 11:59:37 | 显示全部楼层
楼主你好,问一下flt文件是什么格式文件啊?怎么生成的
回复 支持 反对

使用道具 举报

1

主题

3

帖子

91

积分

初级会员

Rank: 2

积分
91
QQ
发表于 2016-10-13 17:12:35 | 显示全部楼层
大良哥,给力啊
回复 支持 反对

使用道具 举报

25

主题

114

帖子

252

积分

中级会员

Rank: 3Rank: 3

积分
252
QQ
发表于 2019-7-31 16:27:16 | 显示全部楼层
里面有很多报错的引用最新的jacob.jar和freemarker.jar不起作用
回复 支持 反对

使用道具 举报

33

主题

373

帖子

916

积分

高级会员

Rank: 4

积分
916
QQ
发表于 2019-8-5 08:22:27 | 显示全部楼层
学习学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-30 04:55 , Processed in 0.062677 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表