UNPKG

myprint-design

Version:

操作简单,组件丰富的一站式打印解决方案打印设计器

1 lines 7.84 kB
{"version":3,"file":"myprint.mjs","sources":["../../../../src/utils/myprint.ts"],"sourcesContent":["import { getPrintRealHeight, valueUnit } from '@myprint/design/utils/elementUtil';\nimport { printCssStyle } from '@myprint/design/utils/utils';\nimport { Panel, TableCellElement } from '@myprint/design/types/entity';\n\n\nexport const tableColClone = {\n showIs: false,\n clonedTable: document.createElement('table'),\n init() {\n this.clonedTable.classList.add('my-print-table');\n this.clonedTable.classList.add('my-table-clone-drag');\n },\n\n show(columnLeft: number, columnTop: number, width: number, rows: TableCellElement[][]) {\n if (this.showIs) {\n return;\n }\n this.showIs = true;\n this.clonedTable.style.left = columnLeft - 0.5 + 'px';\n this.clonedTable.style.top = (columnTop - 0.5) + 'px';\n this.clonedTable.style.width = width + 1 + 'px';\n // this.clonedTable.style.opacity = '0.5';\n\n // 复制选中列的所有单元格并添加到新的表格中\n\n let tableHeight = 0;\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i];\n if (row.length == 0) {\n continue;\n }\n const tr = document.createElement('tr');\n this.clonedTable.appendChild(tr);\n for (let j = 0; j < row.length; j++) {\n // console.log(row[j].runtimeOption.target);\n const clonedCell = row[j].runtimeOption.target.cloneNode(true);\n if (row.length == 1) {\n // console.log(111);\n clonedCell.rowSpan = 1;\n }\n tr.appendChild(clonedCell);\n }\n tableHeight = tableHeight + row[row.length - 1].runtimeOption.height;\n }\n this.clonedTable.style.height = (tableHeight! - 1) + 'px';\n document.body.appendChild(this.clonedTable);\n },\n move(columnLeft: number) {\n this.clonedTable.style.left = columnLeft + 'px';\n },\n hidden() {\n if (!this.showIs) {\n return;\n }\n this.showIs = false;\n this.clonedTable.innerHTML = '';\n document.body.removeChild(this.clonedTable);\n }\n};\ntableColClone.init();\n\nexport function getPrintElementHtml(htmlElement: HTMLElement[], pageList: any[]) {\n let html = '<div>';\n for (let i = 0; i < htmlElement!.length; i++) {\n html += htmlElement![i].outerHTML;\n }\n html += '</div>';\n pageList.length = 0;\n return html;\n}\n\nexport function iFramePrint(panel: Panel, html: string) {\n // 创建iframe\n let iframe = document.createElement('iframe');\n // 设置iframe样式\n iframe.setAttribute('id', 'print-box');\n iframe.setAttribute(\n 'style',\n `height: ${valueUnit(getPrintRealHeight(panel))}; width: ${valueUnit(panel.width)}; \n display: none; \n position: absolute; \n left: 99999; \n top: 0;border: 0;\n z-index: 10000;`\n );\n // display: none;\n // 在页面插入iframe\n document.body.appendChild(iframe);\n // 获取iframe内的html\n let iframeDocument = iframe.contentWindow!.document;\n // 经需要打印的DOM插入iframe\n\n const linkElement = iframeDocument.createElement('style');\n linkElement.type = 'text/css';\n linkElement.textContent = printCssStyle(); // 根据实际文件路径修改\n iframeDocument.body.innerHTML = html;\n\n // 设置iframe内的header,添加样式文件\n iframeDocument.getElementsByTagName('head')[0].innerHTML = `\n <style>\n *{ margin:0;padding:0; }\n @media print {\n @page {\n size: ${valueUnit(panel.width)} ${valueUnit(getPrintRealHeight(panel))};\n margin: 0;\n }\n }\n </style>\n <meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\">`;\n iframeDocument.head.appendChild(linkElement);\n // iframe.onload = function() {\n //\n // };\n // 关闭iframe\n iframeDocument.close();\n // 使iframe失去焦点\n iframe.contentWindow!.focus();\n // 调用iframe的打印方法\n iframe.contentWindow!.print();\n // 移除iframe\n setTimeout(function() {\n document.body.removeChild(iframe);\n // // data.pageList = [];\n }, 10000);\n}\n"],"names":[],"mappings":"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"}