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

时间:2020-03-06 01:19:46

标签: cordova vue.js printing cordova-plugins quasar-framework

在无法使用带有此代码的Cordova打印机插件进行打印时,请帮助我识别。

onException

我的意图是打印页面的两个不同部分。使用innerHTML可以按原样打印一个部分,而使用 this.getIngredientList()

使用第二部分中的项目列表来形成表格

启动打印时,该应用会生成一个文档,其中包含正确打印所需的信息,但不会显示打印机对话框。

请,我在做什么不对?

更新

我更改为

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)
    }

它显示打印对话框并打印。 但是,不会执行winPrint.close()。 winPrint = window.open()生成的页面保持打开状态,我不得不强制退出该应用程序。

1 个答案:

答案 0 :(得分:0)

尽管,我还没有弄清为什么 window.close()为什么拒绝被调用/执行,这是我最终要做的事情,

PopupListBoxSelectionChangedAsync

我希望这对某人有帮助。