读书人

JS-打印word的模板程序

发布时间: 2012-10-12 10:17:04 作者: rapoo

JS--打印word的模板程序

我们在做项目中经常遇到“打印表格”的功能,在此介绍一下我所用过的打印方法。

?

一、比较简单的做法,word另存转化为html文件的方式。分析如下:

1、首先我们需要在office中用wrod画好文件的模板,然后将其另存为thm网页形式。

2、将其改为jsp页面,这样我们就可以文件中使用后来传过来的变量值。此时就是我们传统的jsp方式,后台定义参数,然后前台获取,将变量值写在我们需要显示的地方。

3、对于表格,我们可以用循环来控制。

4、这样做打比较简单,缺点word模板不能修改,一旦表格做个微小的变化,那我们的工作量也不小,因为word转化后的代码很难读懂,要在代码上控制其样式,是相当的困难,所以不推荐这种做法。

(注:1、 在做模板时,我们可以先在需要显示变量值的地方首先定义好值,然后在jsp中直接替换就行。

????????? 2、在jsp页面中,在首先加入“<%@ page contentType="application/msword;charset=UTF-8"%>”,?以标识此页面为word文件。

????????? 3、如果需要点击时直接打开word文件,而非弹出“保存、打开”对话框,则需要删除“xmlns:w="urn:schemas-microsoft-com:office:office"”代码即可。

?

?

下面我们介绍另一种更常用的方法,此方法的有点是:修改word模板文件,不会影响程序。

二、用JS控制的打印方式,具体如下:

?1、首先画word模板,在需要动态显示内容的地方插入“标签”。方法如下:在word中,选中需要被替换的内容-->插入-->书签,为其定义好名字即可,其它类似。

2、将做好的模板文件另存为模板dot文件。

???? 做到这基本就差不多了,接下来就是后台代码发挥的时候了。

3、在后台封装参数值。

4、调用JS函数打印。

?

为了更为直观的介绍,下面用一完整的例子介绍。

先把代码贴出来:

1、JS模板文件,适用范围:

???? a. 根据文档文件,所有要显示的内容都定义为书签。

???? b. 纯表格文件。如果为多个表格或表格中嵌套表格,则需要稍加修改。

???? c. 文档、表格混搭型。

代码如下:

?2、看到代码就会明白,这段代码需要一个JSON类型的参数。

???? 下一步我们所做的工作就是要在JSON上做文章了。 附后台代码(封装JSON,java)

?类:PrintJSONObjectSet

?打印封装的方法:

[   [       {"text":"year","value":2011},       {"text":"fileNum","value":5},       {"text":"leader","value":"彭瓒"},       {"text":"groupCount","value":5},       {"text":"country","value":"俄罗斯"},       {"text":"dispCode","value":"dispCode"},       {"text":"printYear","value":"2011"},       {"text":"printMonth","value":"04"},       {"text":"printDay","value":"07"},       {"text":"list","value":[     [ {"text":"name1","value":"彭瓒"},     {"text":"passportNum1","value":""},     {"text":"name2","value":"郭沁明"},     {"text":"passportNum2","value":""}   ],   [ {"text":"name1","value":"张三五"},     {"text":"passportNum1","value":""},     {"text":"name2","value":"彭瓒"},     {"text":"passportNum2","value":""}   ],   [ {"text":"name1","value":"郭沁明"},     {"text":"passportNum1","value":""},     {"text":"name2","value":"张三五"},     {"text":"passportNum2","value":""}   ]      ]       }     ],     [       {"text":"year","value":2011},       {"text":"fileNum","value":7},       {"text":"leader","value":"彭瓒"},       {"text":"groupCount","value":5},       {"text":"country","value":"韩国"},       {"text":"dispCode","value":"dispCode"},       {"text":"printYear","value":"2011"},       {"text":"printMonth","value":"04"},       {"text":"printDay","value":"07"},       {"text":"list","value":[[ {"text":"name1","value":"彭瓒"},  {"text":"passportNum1","value":""},  {"text":"name2","value":"郭沁明"},  {"text":"passportNum2","value":""}],[ {"text":"name1","value":"张三五"},  {"text":"passportNum1","value":""},  {"text":"name2","value":"彭瓒"},  {"text":"passportNum2","value":""}],[ {"text":"name1","value":"郭沁明"},  {"text":"passportNum1","value":""},  {"text":"name2","value":"张三五"},  {"text":"passportNum2","value":""}]      ]       }     ]  ]

??

读书人网 >JavaScript

热点推荐