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