首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >微搭打印页面不显示图片,有没有大佬可以帮忙解决一下?

微搭打印页面不显示图片,有没有大佬可以帮忙解决一下?

提问于 2023-10-20 11:30:02
回答 0关注 0查看 32

添加描述

添加描述

/*

* 可通过 $page.handler.xxx 访问这里定义的方法

* 注意:该方法仅在所属的页面有效

* 如果需要 async-await,请修改成 export default async function() {}

*/

export default async function({event, data}) {

 console.log('打印', event, data)

/**把内容转换成图片格式进行打印 */

await new Promise((resolve,reject) => {

const s = document.createElement('script')

    s.src= 'https://html2canvas.hertzen.com/dist/html2canvas.min.js'

    s.onload = resolve

    s.onerror = reject

    document.head.appendChild(s)

  })

const element = document.querySelector(`#container3`) // 选择到要打印的组件id或者class,转换为canvas,其中 idXXX 表示要打印的元素

// const hide_element = element.querySelector(`#button1`);// 选择要隐藏的元素,其中 idXXX 表示要隐藏的元素

// hide_element.style.visibility = 'hidden'

$w.page.dataset.state.show = false;

if(!element) {

throw new Error('要打印的内容不存在')

  }

const { width, height } = element.getBoundingClientRect()

const canvas = await window.html2canvas(element)

// 打印

let winPrint = window.open('', '', `left=0,top=0,width=${width},height=${height},toolbar=0,scrollbars=0,status=0`);

  winPrint.document.body.appendChild(canvas);

  winPrint.document.close();

  winPrint.focus();

  winPrint.print();

//hide_element.style.visibility = 'visible';// 恢复被隐藏的元素 ,其中 idXXX 表示要隐藏的元素

  $w.page.dataset.state.show = true;

  winPrint.close();

}

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档