https://jscodemine.grapecity.com/share/rL2Gldldckq6azOVP9vtEg/
在官方的demo中,添加一个预览容器,然后在 BeforePrint 事件中,将 iframe 插入到容器中。
- <!doctype html>
- <html>
- <head>
- <title>SpreadJS in TypeScript</title>
- <link rel="stylesheet" type="text/css" href="node_modules/@grapecity/spread-sheets/styles/gc.spread.sheets.excel2013white.css">
- <link rel="stylesheet type="text/css" href="node_modules/@grapecity/spread-sheets-designer/styles/gc.spread.sheets.designer.min.css">
- <script src="node_modules/systemjs/dist/system.src.js"></script>
- <script src="systemjs.config.js"></script>
- <button id='preview'>预览</button> <button id='cancel'>取消预览</button>
- <div id="previewContainer" style="border:10px solid;"></div>
- <div id="designer-container" style="width:100%;height:98vh;border:1px solid darkgray"></div>
- <script>
- System.import('./src/app');
- </script>
- </head>
- <body>
- </body>
- </html>
复制代码
- let pc = document.getElementById('previewContainer')
- spread.bind(GC.Spread.Sheets.Events.BeforePrint,function(e,data){
- // 监听打印前事件,获取回调中的iframe,修改iframe宽高及位置,并取消打印
- sjsiframe = data.iframe
- pc.appendChild(sjsiframe)
- sjsiframe.style.width = '800px'
- sjsiframe.style.height = '600px'
- sjsiframe.style.top = '200px'
- sjsiframe.style.left = '200px'
- sjsiframe.style.background = '#ffffff'
- sjsiframe.style.border = '10px solid'
- data.cancel = true
- })
复制代码 |