2 网页打印网页打印是JCP的最主要功能,JCP的其他功能,如PDF打印、Office打印等,也是在这个功能的启发下,慢慢发展出来的。
使用JCP进行网页打印,离不开两个核心方法:print方法用来打印,printPreview方法用来打印预览。
JCP打印网页时,你可以进行各种控制,比如,你可以在print方法参数中,设置打印到哪个打印机、纸张、份数等,也可以在打印页(<div>)上设置breakable控制样式类,来告诉JCP进行自动分页。
提示: 你可以使用两种方法,来控制JCP的网页打印:print方法参数和控制样式类。
2.1 基本打印设置本节介绍如何用 print方法参数来进行打印控制。 2.1.1 打印预览、直接打印、选择打印机打印打印预览、选择打印机打印、直接打印 调用浏览器自带的打印方法,window.print,很难做到所谓的静默打印,即不弹打印机选择框进行打印,而JCP可以,当然弹框打印也可以:
1. function doPrint(how) { 2. 3. var myDoc = { 4. documents : document, 5. copyrights : '杰创软件拥有版权 www.jatools.com' 6. var jcp = getJCP(); 7. 8. if (how == '打印预览') 9. jcp.printPreview(myDoc, false); 10. else if (how == "打印预览(显示进度条)") { 11. jcp.printPreview(myDoc, true); 12. } else if (how == '弹出打印机选择对话框打印') { 13. jcp.print(myDoc, true); 14. } else 15. jcp.print(myDoc, false); // 不弹出对话框打印 16. 17. }
从示例可见,JCP的打印及打印预览,使用的是print,printPreview两个方法。
print方法的第一个参数myDoc,用来设置打印参数,比如设置输出打印机、纸张类型、边距等,其中必选的两个属性是documents和copyrights,documents表示打印来源内容,如果打印内容为本页面中ID为page1,page2...的div,则设置为document。copyrights为定值,必须设置为示例所示值。
print的第二个参数表示打印前是否显示打印机选择对话框。
printPreview方法的第一个参数myDoc,作用与print方法一样,第二个参数表示是否显示页面生成进度条,当有大数据量的自动分页时,建议显示这个进度条,提示用户等待。
两个方法都没有返回值,如果想知道打印是否完成,可以在myDoc中,设置done回调函数。
2.1.2 选择打印机打印选择打印机打印 在JCP中,选择打印机打印有两种方法,第一种即上节示例所示,调用 jcp.print(myDoc,true) 方法,那么,JCP在打印前,会弹出系统的打印机选择对话框,由用户选择后,再进行打印。
第二种方法,是利用JCP的getPrinters方法,检索出系统安装的打印机,用js填充到页面的<select>元素中,如: 1. <script> 2. function loadPrinters() { 3. // 取得系统安装的打印机 4. getJCP().getPrinters(function(printers) { 5. // printers是取到的打印机列表,是一个字符串数组,每个元素表示一个打印机的名称 6. var printerlist = document.getElementById('printer-list'); 7. // 填充到一个select中 8. for (i = 0; i < printers.length; i++) 9. printerlist.options[i + 1] = new Option(printers[i], printers[i]); 10. printerlist.options[0].selected = true; 11. }) 12. } 13. function doPrint() { 14. var printer = document.getElementById('printer-list').value; 15. var myDoc = { 16. settings : { 17. // 设置要输出的打印机 18. printer : printer 19. }, 20. documents : document, 21. copyrights : '杰创软件拥有版权 www.jatools.com' 22. }; 23. jcp.print(myDoc, false); // 不弹出对话框打印 24. } 25. <script> 26. ... 27. <body onload="loadPrinters()"> 28. ... 29. <select id="printer-list"></select> 30. ...
一般在文档加载完成时调用 JCP的getPrinters方法,当用户打印时,只需要将用户选择的打印机名称,设置到myDoc.settings.printer属性,即可将打印内容打印到该打印机。
如果不设置 printer属性, JCP将打印到默认打印机。
提示: 利用 getPrinters方法,使用户可以在<select>中选择输出打印机,同时,可以使用js的cookie方法,将用户最后一次选择的打印机,记录在cookie中,在下次打印时用js自动从cookie中取得上次使用的的打印机,设置到 <select>默认选项中,这种方法让可以让用户,免去每次选择打印机的麻烦。
2.1.3 选择纸张类型、方向、页边距选择纸张类型打印、方向、页边距 当你调用JCP的print(打印),和printPreview(打印预览)方法时,你可以在myDoc.settings属性中设置,要打印机纸张类型、方向、页边距,如:
1. var myDoc = { 2. settings : { 3. paperName : "A4", // 纸张名称 4. portrait : true, // 纵向 5. marginLeft : 5, //设置左边距,单位为mm 6. marginTop : 5, 7. marginRight : 5, 8. marginBottom : 5 9. 10. }, 11. documents : document, 12. copyrights : '杰创软件拥有版权 www.jatools.com' 13. }; 14. getJCP().print(myDoc);
paperName:要使用的纸张名称; portrait: true为纵向打印,false为横向打印; marginLeft,marginTop,marginRight,marginBottom:指定左、上、右、下边距,单位为mm,可以带1位小数点,默认为打印机的默认边距;
paperName是指当前打印机可用纸张,否则无效,比如,在一个不支持A4纸张的打印机上,指定A4,则无效,在此情况下,JCP使用打印机的默认纸张。
如果你想取得某一台打印机的可用纸张,可以调用 getPapers方法,如下: 1. // 取得 <select>元素,用来放置可用纸张列表 2. var paperlist = document.getElementById("papers"); 3. // 取得虚拟打印机的可用纸张, 4. getJCP().getPapers("Microsoft XPS Document Writer", function(papers) { 5. for (i = 0; i < papers.length; i++) 6. // 将纸张名称,填充到<select> 中 7. paperlist.options[i + 1] = new Option(papers[i].name, papers[i].name); 8. }); getPapers返回的是一个 Object对象数组,其中name属性是纸张名称。
提示: 某些打印机不能紧贴纸张边缘打印,这时,你不能把边距设得太小了,太小了会不起作用。
2.1.4 自动生成自定义纸张自动生成自定义纸张 有时,需要打印一些发票、快递单、发货单等,这些单据的大小,并不是标准的A4,A5之类,在默认的打印机驱动中,也不会内置这些纸张类型,所以在打印这类单据时,需要事先创建好相应大小的纸张,即所谓的自定义纸张。
如果使用浏览器来打印这些网页,那么,需要手工在控制面板,设备与打印机中,设置好这些规格的纸张,然后,再在系统页面选择对话框中,选用这个纸张。
使用JCP不需要这些手工设置,只需要在程序中,设置好纸张的高、宽即可,如下: 1. var myDoc = { 2. settings : { 3. paperWidth : 200, // 自定义纸张, 宽度为 200mm 4. paperHeight : 150 // 高度为 150mm 5. // paperName : "A4", // 设置了 paperWidth,paperHeight,就不要设置 paperName了,二选一 6. }, 7. documents : document, 8. copyrights : '杰创软件拥有版权 www.jatools.com' 9. }; 当JCP解析到myDoc.settings的paperWidth,paperHeight属性时,会自动到打印机的可用纸张中,查询是否有此规格的纸张,如果有,则选用之,如果没有则自动生成一个纸张并选用之。
自动生成的纸张名称为 jcp [paperWidth] x [paperHeight] mm
有些打印机,不支持自定义纸张,特别是一些激光打印机。判断打印机是否可以自定义纸张,可用JCP的isCustomPaperSupported方法
不要同时指定paperName和paperWidth,paperHeight,如果同时指定,则后者将被忽略。
2.1.5 打印份数控制设置打印份数 可以用 myDoc.settings.copies 属性,指定打印份数: 1. var myDoc = { 2. settings : { 3. copies : 3, // 打印三份 4. collate : true // 逐份打印,即以 1,2,3,...,1,2,3,... ,1,2,3,... 顺序打印 5. }, 6. documents : document, 7. copyrights : '杰创软件拥有版权 www.jatools.com' 8. }; 9. getJCP().print(myDoc); 可以用collate指定打印顺序: true,逐份打印,即1,2,3,...,1,2,3,... ,1,2,3,... false,为逐页打印,即1,1,1,2,2,2,3,3,3,...
2.1.6 打印指定页指定打印页 可以用 myDoc.settings 的pageFrom 和pageTo属性,指定要打印的页面,如: 1. var myDoc = { 2. settings : { 3. pageFrom : 2, 4. pageTo : 3 5. }, 6. documents : document, 7. copyrights : '杰创软件拥有版权 www.jatools.com' 8. }; 9. getJCP().print(myDoc);
以上打印第2,3两页。
2.1.7 双面打印双面打印 用myDoc.settings.duplex属性设置是否双面打印,如下: 1. var myDoc = { 2. settings : { 3. duplex : 2 // 1: 不双面打印, 2:左侧装订, 3: 上方装订 4. }, 5. documents : document, 6. copyrights : '杰创软件拥有版权 www.jatools.com' // 版权声明必须 7. }; 8. getJCP().print(myDoc); 以上为双面打印,且为左侧装订。
提示: 当你的打印机不支持双面打印时,此设置无效。检测打印机是否支持双面打印,可以参照getPrinterCapability
2.1.8 预设打印设置到注册表预设打印参数到注册表 想像一下,有这样的需求:既要允许用户自己设置打印机,纸张,又能让用户不必每次都去设置这些参数,以简化打印操作,我们可以利用JCP保存打印参数到注册表的功能来实现。
JCP保存打印设置到注册表,就是将打印参数,如打印机、纸张类型、边距等,事先保存到注册表,并以一个ID 标记,以后,直接打印时只要告诉 JCP 这个ID,JCP就会到注册表中找到对应的设置来打印了。以下是打印设置保存到注册表中的样子: 所有的打印设置,被保存在 HKEY_CURRENT_USER\Software\jatools\jatoolsPrinter 下,左侧注册项名称是设置ID,右侧是具体的打印设置。
假设给用户的界面是这样的:
用户多数情况下,都是点直接打印(不弹任何对话框)来打印,只有在第一次打印或者需要更改打印设置时,才点击 设置打印参数, 设置打印参数 的作用是,显示一个打印参数设置面板,让用户可以在此面板中来设置参数,并保存到注册表,以下是点击后显示的面板效果(该面板你可以自由定制):
保存设置到注册表的代码: 1. function saveSettings() { 2. var settings = { 3. printer : document.getElementById('printer-list').value,// 设置选中的打印机 4. paperName : document.getElementById('paper-list').value,// 设置选中的纸张 5. orientation : document.getElementById('portrait').checked ? 1 : 2, // 方向 6. marginLeft : parseFloat(document.getElementById('leftmargin').value), // 边距 7. marginTop : parseFloat(document.getElementById('topmargin').value), 8. marginRight : parseFloat(document.getElementById('rightmargin').value), 9. marginBottom : parseFloat(document.getElementById('bottommargin').value) 10. } 11. getJCP().setLastSettings("订单", settings); 12. } 代码先从界面上收集到设置的参数,放到一个js 对象中,然后用 JCP 的 setLastSettings方法将设置保存到注册表,该方法的第一个参数是设置ID,在直接打印代码中要用到,第二个参数是具体设置。
直接打印按钮要执行的代码: 1. function doPrint() { 2. var myDoc = { 3. settingsId : '订单', // 引用设置id 4. documents : document, 5. copyrights : '杰创软件拥有版权 www.jatools.com' 6. }; 7. getJCP().print(myDoc, false); // 不弹出对话框打印 8. } 直接打印时,不设置具体的打印参数,而代之以通过设置myDoc. settingsId 的方式,让JCP使用保存在注册表中的设置,如果在注册表中,没有这个设置,JCP会使用系统的默认设置,如默认打印机,默认纸张等。
可以保存在注册表中的打印参数包括:
2.1.9 保留打印设置到注册表保留打印设置到注册表 上例中,我们使用了一个自定义的HTML界面,来收集打印设置,比如,打印机、纸张等,再保存到注册表,但有时,这种方式稍嫌麻烦,或者不够直观,比如,在HTML界面中设置边距,纸张,你无法实时看到效果,那么,我们可以使用JCP的打印预览窗口,代替 HTML界面。
当你使用 JCP的 printPreview方法,并设置了属性 myDoc.settingsId,那么,每次在预览窗口中点击打印后,该次打印使用的设置,就会被记录到注册表,注意,必须打印,不打印不会记录。
启动打印预览窗口,保存打印设置到注册表的代码: 1. var myDoc = { 2. settingsId:"订单", // 打印预览窗口中,点击打印后,将打印参数保存到注册表项目 订单 中 3. documents : document, 4. copyrights : '杰创软件拥有版权 www.jatools.com'
直接打印按钮要执行的代码: 1. function doPrint() { 2. var myDoc = { 3. settingsId : '订单', // 引用设置id 4. documents : document, 5. copyrights : '杰创软件拥有版权 www.jatools.com' 6. }; 7. getJCP().print(myDoc, false); // 不弹出对话框打印 8. }
提示: 只要设置了属性 myDoc.settingsId,不管是使用Print方法,还是使用printPreview方法,只要进行了实际的打印,都会将最后一次打印使用的设置,记录到注册表。
提示: 为什么需要保存设置功能?
保存设置功能,通常用在以下两种情况: (1)一个套打系统,由于各客户端打印机不同,或者进纸盒的位置不同,或者其他原因,可能引起打印出来的票据位置发生偏移,用户希望能根据自己打印机的状况,自行调整边距以纠正位置,但不希望每次打印前,都进行一次手工调整。 (2)一个客户端配置了多台打印机,分别用于打印不同类型的文档,用户不希望每次打印一个文档前,选择一次打印机;
对于第一种情况,你可以这样解决: 1. 页面中设置两个按钮,一个"直接打印",一个"打印预览"; 2. 当客户发现位置有偏移时,可以点击"打印预览"按钮,调整左、上边距,并打印这个页面; 3. 如果发现位置还不理想,则重复第2步,如果正确,则下一次打印这个票据时,只需点击"直接打印"即可保证位置正确。
对于第二种多种打印机的情况,你可以这样解决: 1. 页面中设置两个按钮,一个"直接打印",一个"打印预览"; 2. 第一次打印时,可以点击"打印预览"按钮,选择你想要的打印机进行打印; 3. 则下一次打印这个票据时,只需点击"直接打印"即可保证输出到正确的打印机。
提一点建议:因为"打印预览"按钮不常用,最好不要跟"直接打印"按钮并排放在一起,以避免干扰。
保存设置参数的工作原理是怎样的?
JCP是如何保留设置参数的,有些用户感觉困惑,下面介绍一下保留与加载打印参数的工作原理。
保存设置参数原理: 1. 客户打印一个文档到打印机后; 2. JCP触发打印完成事件; 3. JCP响应打印完成事件,查询本次打印是否有myDoc.settingsId属性,如果有,则保存本次打印的配置参数到注册表(如果注册表中存在该id设置,则替换以前设置)。
所以,保存打印参数的前提是:已经输出到打印机,并且设置了myDoc.settingsId。 有些用户,只在JCP的预览窗口中设置了边距等,而不实际打印,这样,JCP是不会保留你的设置的。
加载打印参数原理: 1. 客户在预览或打印前,JCP检查是否有 myDoc.settingsId属性; 2. 如果有myDoc.settingsId属性,JCP尝试从注册表中读入该id相关的配置参数,如果存在,则用该配置参数来设置打印机(即忽略myDoc.settings里的设置),转第4步; 3. 根据用户的myDoc.settings里的设置,设置打印参数; 4. 根据设置,启动打印或打印预览。
2.1.10 删除注册表中的打印设置删除注册表中的打印设置 你可以调用clearSettings方法,清除注册表中的打印设置项,如下: 1. //清除注册表中id为mysettings1 的打印参数项 2. getJCP().clearSettings("mysettings1",function(result) { 3. console.log("成功?"+result); 4. }) 你可以调用 getSettingsIds 取得注册表中的所有 settingsId : 1. getJCP().getSettingsIds(function(settings) { 2. // settings是一个字符串数组,表示在注册表中记录的所有setttingsId 3. for (i = 0; i < settings.length; i++) 4. console.log(settings[i]); 5. })
2.2 打印页面来源设置JCP可以打印本页面中的内容,以及URL上的内容、iframe上的内容等,本节介绍如何用print/printPreview参数属性 myDoc.documents 来控制打印内容。
打印本页面中的内容,在《JCP快速入门》和上节中都有提及,在此不再赘述。 2.2.1 多个文档共存在同一web页面中,区别打印多个文档共存在同一web页面中,区别打印 如果同一个文档中的若干页面,分属不同票据,如下例,6个页面分属资产负责表和现金流量表: 1. <div id='zc-page1'>资产负债表,第一页(div#zc-page1)</div> 2. <div id='zc-page2'>资产负债表,第二页(div#zc-page2)</div> 3. <div id='zc-page3'>资产负债表,第三页(div#zc-page3)</div> 4. <br/> 5. <div id='xj-page1'>现金流量表,第一页(div#xj-page1)</div> 6. <div id='xj-page2'>现金流量表,第二页(div#xj-page2)</div> 7. <div id='xj-page3'>现金流量表,第三页(div#xj-page3)</div> 怎么样让JCP区别打印?答案是使用pagePrefix属性,如下所示: 1. var myDoc = { 2. pagePrefix : "zc-", // 仅打印id以zc-开始的页面,即 zc-page1,zc-page2,... 3. documents : document, 4. copyrights : '杰创软件拥有版权 www.jatools.com' 5. }; 6. getJCP().print(myDoc); pagePrefix+page+页序号构成可打印div的id, 如本例前缀为 'zc-' ,则找到以 'zc-page1'为id的div作为文档首页, 该属性默认值为空。
2.2.2 不显示文档,直接指定URL打印不显示文档,直接指定url打印 1. var myDoc = { 2. //打印页面page1,page2,... 在url:pages.htm指定的一个文档中, 3. documents : "pages.htm", 4. copyrights : '杰创软件拥有版权 www.jatools.com' // 版权声明必须 5. }; 6. getJCP().print(myDoc); 你可以将 documents 属性设置成一个字符串,表示你想打印一个URL上的页面,该URL返回的页面中,有id为page1、page2…这样的div。JCP的print方法会自动请求这个URL上的页面,并打印之。
本例中,URL设置到 pages.htm,看上去是一个服务端的静态文件,实际上,你也可以使用任何语言,框架产生的HTML文档流,比如 jsp、 php、asp等,也可以在URL上指定参数。
将documents设置为document,则打印页面page1、page2…必须已经显示在本文档中,而设置到URL,则意味着打印内容不必显示出来,就可以打印,设想这样的用户场景:
用户在一个订单列表中,勾选需要打印的订单,然后,按打印按钮进行打印,这时,你可以将用户勾选到的id作为参数,设置到documents:
1. var myDoc = { 2. // 选择了1,2,5号订单,那么,后台返回 page1,page2,page3, 分别表示1,2,5号订单内容 3. documents : "getOrders.jsp?orders=1,2,5", 4. copyrights : '杰创软件拥有版权 www.jatools.com' 5. }; 6. getJCP().print(myDoc); 你的服务端程序 getOrders.jsp,解析orders参数,并返回相应的页面内容。
注意: URL 返回的页面内,必须有 id为page1的div,否则,JCP报不存在可打印的页错误。
2.2.3 打印隐藏对象打印预览一个隐藏的文档 有时,打印内容已经在当前文档document中,你可以将它们设置到一个隐藏的容器中,仍然可以用JCP打印出来: 1. var myDoc = { 2. documents : document, 3. copyrights : '杰创软件拥有版权 www.jatools.com' 4. }; 5. getJCP().print(myDoc); 6. ... 7. <div style="display:none"> 8. <div id='page1'>第一页(div#page1)</div> 9. <div id='page2'>第二页(div#page2)</div> 10. <div id='page3'>第三页(div#page3)</div> 11. <div id='page4'>第四页(div#page4)</div> 12. <div id='page5'>第五页(div#page5)</div> 13. <div id='page6'>第六页(div#page6)</div> 14. </div> 15. ... 注意: 不要将display:none,设置到page div上,这样会出现打印出空白页的情况。
2.2.4 打印<iframe>的页面打印<iframe>的页面 你可以打印iframe中的内容,只要该iframe里面包含page1,page2,...这样的打印div页面: 1. <script> 2. ... 3. var myDoc = { 4. // 打印一个iframe里面的页面,该iframe 的 id为myframe 5. documents : document.getElementById("myframe").contentWindow.document, 6. copyrights : '杰创软件拥有版权 www.jatools.com' 7. }; 8. getJCP().print(myDoc); 9. </script> 10. ... 11. <iframe id='myframe' src='pages.htm'></iframe> 12. ... 可以用类似 document.getElementById("IFRAMEID").contentWindow.document 这样的形式,取得iframe里的document对象。
注意,打印iframe前,应该确保其已经加载完成,所以,如果你需要动态指定iframe的src属性时,应该在文档加载完成后,再调用JCP进行打印,如: 1. function main() { 2. // 加载完成后,再打印 3. loadFrame("getpages.jsp", doPrint); 4. } 5. function doPrint() { 6. var myDoc = { 7. documents : document.getElementById("myframe").contentWindow.document, 8. copyrights : '杰创软件拥有版权 www.jatools.com' 9. }; 10. getJCP().print(myDoc); 11. } 12. function loadFrame(src, callback) { 13. // 加载完成后,回调 callback 14. var loaded = function() { 15. callback(); 16. } 17. var frame = document.getElementById("myframe"); 18. if (frame.attachEvent) { 19. frame.attachEvent("onload", loaded); 20. } else { 21. frame.onload = loaded; 22. } 23. frame.src = src; 24. }
2.2.5 打印指定的 HTML文本串打印指定的 HTML 如果你有一个 html文本,想把它打印出来,那么可以这样: 1. var myDoc = { 2. documents : { 3. // 用 html 指定每页的html,数组,每个元素表示一页 4. html : ['<span>我是老大,哈哈 !</span>', '<span id="second">我是老二 !</span>'], 5. style : "span#second{font-size:150%;}" // 可以用 style指定所有页面的 css 6. }, 7. //当只有一页时,可以直接以字符串指定,如: 8. //documents: {html:'<span>我是老大!</span>'}, 9. copyrights : '杰创软件拥有版权 www.jatools.com' 10. }; 11. getJCP().print(myDoc); 你可以将documents设置到一个Object对象,其属性 html可以为一个字符串数组,表示每页中显示的内容,当只有一页时,html可以直接设置为一个 html 字符串。
如果你还想指定公用的css,可以同时指定 style属性,此属性非必须。
2.2.6 打印指定的 HTML,可同时指定 page div 属性打印指定的 HTML,可同时指定 page div 属性 上例打印html时,有个问题,就是不能指定 div page1上的属性,比如 style等,如果你想指定div页上的属性,可以使用 pages属性,如下所示: 1. var myDoc = { 2. documents : { 3. pages : '<div id=page1 style="background-color:lightgray"><span>我是老大,哈哈 !</span></div><div id=page2><span id="second">我是老二 !</span></div>', 4. style : "span#second{font-size:150%;}" // 可以用 style指定所有页面的 css 5. }, 6. 7. copyrights : '杰创软件拥有版权 www.jatools.com' // 版权声明必须 8. }; 9. getJCP().print(myDoc);
本例指定了div page1的背景色。当以pages指定html时,必须以page1,page2,page3...这样的div包裹打印内容。
2.2.7 一次打印多个文档一次打印多个文档 一次打印多个文档,是指可以将多个文档作为一个打印任务,打印到打印机。如果想一次性打印多个文档,你可以指定documents为一个数组,如下所示: 1. //打印文档对象 2. var myDoc = { 3. //用数组来指定打印文档 4. documents : ['sample1.htm', 'sample2.htm'], 5. copyrights : '杰创软件拥有版权 www.jatools.com' 6. }; 7. getJCP().print(myDoc); 本例将sample1.htm,和sample2.htm上的page1,page2...一次性打印出来,次序是先打印sample1.htm的页面,再打印sample2.htm上的页面。
以此方式指定的多个打印文档,在打印预览printPreview时,也是显示在一起的.
注意: sample1.htm,sample2.htm,都必须有 page1开始的div,页数可以不定,如: sample1.htm 1. <div id=page1>...</div><div id=page2>...</div> 正确的sample2.htm: 1. <div id=page1>...</div> 错误的sample2.htm,没有page1 div,JCP会报不存在可打印的页: 1. <div id=page3>...</div> 除了可以一次性打印不同的URL上的文档,还可以打印不同方式指定的打印内容,参照下节。
2.2.8 一次打印多种方式指定的多个文档(包括DOM document、URL、html文本串)一次打印多种方式指定的,多个文档 你可以将本章所述的多种打印页面来源,设置到documents属性,一次性打印出来或者预览,如: 1. var myDoc = { 2. documents : [ 3. document,// 本文档中的page1,page2,..., 4. 'sample1.htm', // url 5. { 6. html : ['<span>我是老大,首先出场!</span>', '<span id="second">我是老二,跟上!</span>'], // 用 html 指定每页的html,数组,每个元素表示一页 7. style : "span#second{font-size:150%;}" // 可以用 style指定所有页面的 css 8. }], 9. copyrights : '杰创软件拥有版权 www.jatools.com' // 版权声明必须 10. }; 11. getJCP().print(myDoc); 本示例顺序打印以下三个文档: 1. document,即本页面上的page1、page2...; 2. 再打印URL,sample1.htm上的page1、page2...; 3. 最后打印 html上指定的html。
以此方式指定的多个打印文档,在打印预览 printPreview 时,也是显示在一起的.
|