7 云文档打印本地方式打印MS Office 或 WPS 文档,都需要在客户端安装 MS Office 或 WPS 软件,对有些项目来说,这可能有些不利的因素,首先是客户端操作系统和软件版本的不一致,可能导致打印效果有差异,其次,每个客户端安装软件会增加成本,第三,客户端有可能根本没有安装这些软件。参见MS Office 文档打印
同时,由于技术限制MS Office 和 WPS 文档本地打印无法实现打印预览。
JCP 的云文档打印模式,可以有效解决上述问题,其打印流程图示如下:
云文档打印方式,由服务端将MS Office 和WPS 文档转换成JCP专用格式,再由 JCP.exe 负责打印、预览,这样,客户端就不需要任何第三方程序了。
7.1 打印、打印预览PDF、Word、Excel、Powerpoint、WPS 文档云文档打印 1. function doPrint(preview) { 2. var type = ...; 3. var url = ...; 4. // 取得云文档服务实例 5. var docxService = getJCP().docxService(); 6. if (preview) 7. docxService.printPreview(url, { 8. fileType : type 9. }); // 打印预览 10. else 11. docxService.print(url, { 12. fileType : type 13. }); // 直接打印或弹打印机选择对话框打印 14. } 要使用云文档打印方式,必须先用 docxService 方法,取得云文档服务实例,再使用print 方法,来进行打印,用printPreview 方法来打印预览。
print 和printPreview 方法,它们的参数是一致的,第一个参数表示文档的网络地址,这个地址可以是静态的文件,也可以是带参数由后台程序实时生成的文档。
第二个参数里,可以设置一些打印参数,其中,fileType是唯一必须的属性,表示文档类型,其值是以下中的一个: doc,docx,xls,xlsx,ppt,pptx,wps,pdf
在第二个参数里,可以使用 prompt 属性来指明,打印前是否需要弹出打印机选择对话框。详见print 方法。
7.2 云文档打印基本设置云文档打印基本设置 1. var myDoc = { 2. fileType : 'doc', 3. copies : 2, 4. from : 1, 5. to : 2, 6. duplex : true, 7. printer : "HP LaserJet M1000" 8. } 9. // 取得云文档服务实例 10. var docxService = getJCP().docxService(); 11. docxService.print("d.doc", myDoc); 你可以用 docxService 的renderTo方法,将文档显示在一个 iframe中,第一个参数表示文档地址,第二个参数,表示一个iframe对象,如果你想显示在另一个tab中,可以设置此参数为空值,第三个参数为打印参数,同print 方法。
7.3 嵌入预览嵌入预览
云文档打印可以集成开源项目PDF.js,可以很好地实现WEB页内预览,如上图所示,也可以使用页内预览的按钮,进行选择打印机打印,如下图所示,也可通过按钮直接打印。
以下将a.doc文档,显示在id为viewer的iframe中: 1. ... 2. function doPreview() { 3. var viewer = document.getElementById("viewer"); 4. getJCP().docxService().renderTo("a.doc", viewer, { 5. fileType : "doc" 6. }); 7. } 8. ... 9. <input type="button" value="预览" onclick="doPreview()"> 10. <iframe id="viewer"></iframe> 你可以用 docxService 的renderTo方法,将文档显示在一个 iframe中,第一个参数表示文档地址,第二个参数,表示一个iframe对象,如果你想显示在另一个tab中,可以设置此参数为空值,第三个参数为打印参数,同print方法。
|