后台打印功能

2020-06-11  本文已影响0人  Light_shallow

业务要求

选择某一条订单,点击打印按钮,弹出一个框显示需要打印出来的内容,
底部存在两个按钮,取消(关闭弹框)打印(调电脑自身的打印预览)

出现的问题

<style media="print">
   @page {
     size: auto;  
     margin: 0mm;  //具体的上下左右边距可以根据实际要求微调
   }
</style>

完整代码如下

let printPageContent = this.$refs['printPage'].$el;
        let printCss= '' +
            '<style media="print">' +
              '@page {' +
                'size: auto;' +
                'margin: 20px 20px 0mm;' +
              '}' +
            '</style>' +
            '<style type="text/css">' +
              'table th, table td {' +
                'border:1px solid #000;' +
              '}' +
              'table {' +
                'border-collapse: collapse;' +
                'border: 1px solid #000000;' +
                'width: 900px;' +
                'margin: 0 auto;' +
              '}' +
              'td {' +
                'border-collapse: collapse;' +
                'border: 1px solid #000000;' +
                'padding: 3px;' +
                'font-size: 14px;' +
              '}' +
              'h1 {' +
                'font-size: 18px;' +
                'line-height: 36px;' +
                'padding: 0;' +
                'text-align: center;' +
              '}' +
            '</style>';
        let iframe;
        if(!!document.getElementById('printArea')){
          iframe = document.getElementById('printArea')
          iframe.contentWindow.document.body.innerHTML = ""
        }else{
          iframe = document.createElement('iframe')
          iframe.id = 'printArea'
          document.body.appendChild(iframe)
        }
        printCss += printPageContent.outerHTML;
        iframe.contentWindow.document.write(printCss);
        iframe.contentWindow.print();
        iframe.contentWindow.close();
      },
上一篇 下一篇

猜你喜欢

热点阅读