UNPKG

js-table-print

Version:

一款智能打印插件,目标是处理表格的打印,实现自定义页头、页尾、水印、分页方式等

166 lines (144 loc) 3.83 kB
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title></title> <script src="../lib/index.js"></script> <link rel="stylesheet" type="text/css" href='./test.css' /> </head> <body> <button id="ok1">横向打印</button> <button id="ok2">竖向打印</button> <section id="print"> </section> <script> window.onload=function(){ var table=` <h1 class="title"> 产品申请单 <span>2021-01-01</span> </h1> <table > <tbody> <tr> <td>申请人</td> <td>测试人</td> <td>申请人部门</td> <td>测试部门</td> </tr> <tr> <td>总额</td> <td>¥123.00</td> <td>备注</td> <td>123123</td> </tr> </tbody> </table> <table> <tbody><tr><td style="height:50px;">产品列表</td></tr></tbody> </table> <table> <thead> <tr> <th>产品编码</th> <th>产品名称</th> <th>产品型号</th> <th>单价(¥)</th> <th>内采数量</th> <th>总价(¥)</th> </tr> </thead> <tbody> @list </tbody> </table> <hgroup style="padding:10px 0;border:1px solid #ccc;"> <div>这里的内容不要被分页切割1</div> <div>这里的内容不要被分页切割2</div> <div>这里的内容不要被分页切割3</div> <div>这里的内容不要被分页切割4</div> <div>这里的内容不要被分页切割5</div> </hgroup> <div style="page-break-before:always">插入一个强制分页</div> <table> <tbody><tr><td style="height:50px;">签收人</td></tr></tbody> </table> <table> <tbody> <tr style="height:100px;"> <td style="width:120px;">申请人</td> <td></td> <td style="width:120px;">收单人</td> <td></td> </tr> <tr style="height:100px;"> <td>上级审批</td> <td></td> <td>CEO确认</td> <td></td> </tr> <tr style="height:100px;"> <td>本人签字</td> <td></td> <td>签署日期</td> <td></td> </tr> </tbody> </table> <div style="margin-top:20px">这里的内容可以被分页切割1</div> <div>这里的内容可以被分页切割2</div> <div>这里的内容可以被分页切割3</div> <div>这里的内容可以被分页切割4</div> <div>这里的内容可以被分页切割5</div> <div>这里的内容可以被分页切割6</div> <div>这里的内容可以被分页切割7</div> <div>这里的内容可以被分页切割8</div> <div>这里的内容可以被分页切割9</div> <div>这里的内容可以被分页切割10</div> ` let list=''; for(let i=0;i<3;i++){ var dom = ` <tr> <td>${i}</td> <td>${i}</td> <td>${i}</td> <td>${i}</td> <td>${i}</td> <td>${i}</td> </tr> ` list+=dom; } table=table.replace('@list',list); var domPrint = document.querySelector('#print'); domPrint.innerHTML = table; var header = document.createElement('div'); header.innerText='上海XXXX有限公司'; header.className='title'; var TablePrint = TablePrint||window['js-table-print'].default; var landscape=true; function DoPrint(){ let plugin = new TablePrint({ children:domPrint.children, header:header, footer:true, landscape:landscape, water:true, debug:true }); plugin.print(true); } document.querySelector('#ok1').onclick=function(){ landscape=true; DoPrint(); } document.querySelector('#ok2').onclick=function(){ landscape=false; DoPrint(); } } </script> </body> </html>