Пожалуйста, мне нужна помощь в идентификации, поскольку я не могу печатать с помощью подключаемых модулей принтера Cordova с этим кодом.
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)
}
Я намерен распечатать две разные части страницы. Один раздел печатается как есть с помощью innerHTML, а список элементов из второго раздела используется для формирования таблицы с помощью this.getIngredientList().
При запуске печати приложение создает документ с необходимой информацией для точной печати, но диалоговое окно принтера не отображается.
Пожалуйста, что я делаю не так?
ОБНОВЛЕНИЕ
я изменился на
winPrint.cardova.plugins.printer.print()
winPrint.close()
И он отображает диалоговое окно печати и печатает. Однако winPrint.close() не выполняется. сгенерированная страница с помощью winPrint= window.open() остается открытой, и мне приходится принудительно закрыть приложение.