首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Cordova打印机插件打印组件div

如何使用Cordova打印机插件打印组件div
EN

Stack Overflow用户
提问于 2020-03-06 01:19:46
回答 1查看 609关注 0票数 1

请帮助我识别,而我不能使用Cordova打印机插件与此代码打印。

代码语言:javascript
复制
printReport () {
      var newstr = document.getElementById('analysis').innerHTML
      var div = document.createElement('div')
      div.className = 'listPrint'
      div.innerHTML = this.getIngredientList()
      const prtHtml = '<h4>ShoopiShopping List</h4>'
      let styleHtml = ''
      for (const node of [...document.querySelectorAll('link[rel="stylesheet"], style')]) {
        styleHtml += node.outerHTML
      }
      const winPrint = window.open('')
      winPrint.document.write(`<!DOCTYPE html>
        <html>
        <head>
        <title>ShopIt</title>
        ${styleHtml}
        </head>
        <body>
        ${prtHtml}`
      )
      winPrint.document.body.append(div)
      winPrint.document.write(`${newstr}`)
      winPrint.document.write(`</body>
        </html>`)
      cordova.plugins.printer.print(winPrint)
    }

我打算打印这一页的两个不同的部分。使用this.getIngredientList()打印一个部分,使用innerHTML,而第二个部分中的项列表用于使用innerHTML生成表。

在开始打印时,应用程序生成一个文档,其中包含准确打印所需的信息,但没有显示打印机对话框。

拜托,我有什么不对的?

更新

我变了

代码语言:javascript
复制
winPrint.cardova.plugins.printer.print()
winPrint.close()

并显示打印对话框和打印。但是,没有执行winPrint.close()。winPrint= window.open()生成的页面仍然处于打开状态,我不得不迫使应用程序退出。

EN

回答 1

Stack Overflow用户

发布于 2020-03-13 09:33:56

虽然我还没有弄清楚为什么window.close()拒绝被调用/执行,但这是我最终要做的,

代码语言:javascript
复制
    const winPrint = (`<!DOCTYPE html>
            <html>
            <head>
            <title>ShopIt</title>
            ${styleHtml}
            </head>
            <body>
            ${prtHtml}`
          )

     cordova.plugins.printer.print(winPrint, { name: 'report' })

我希望这能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60556286

复制
相关文章

相似问题

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