我正在尝试使用“window.print”函数生成一些“纯文本”信息的打印功能。
在 Microsoft Edge 和 Internet Explorer (IE9 及更高版本)中打印选定的文本有效。
然而,在谷歌浏览器中,“虽然预览显示要打印的文本”,当发送到打印机时,它只显示空白页面。
对于要求,我们使用的是“无墨水”热敏打印机,我们只需要打印文本。
以下代码只是我们如何“在新页面中”构建要打印的信息的示例;但是,正如我所提到的,在 Google Chrome 中它不会打印任何内容。
/* Imprimir el ejemplo. */
function printThisDocument() {
try {
var mywindow = window.open('', 'my div', 'height=600,width=1000');
mywindow.document.write('<html moznomarginboxes mozdisallowselectionprint><head><title>Sticker #1</title>');
mywindow.document.write('</head><body>');
mywindow.document.write(document.getElementById('divOculto').innerHTML.trim());
mywindow.document.write('</body></html>');
mywindow.document.close(); // necessary for IE >= 10
mywindow.focus(); // necessary for IE >= 10
setTimeout(function(){ mywindow.print(); mywindow.close(); }, 500);
} catch (ex) {
alert('Hubo un error al imprimir. Intente de nuevo.');
console.log(ex);
}
}
我曾尝试选择“预览”不同的纸张尺寸,但只有“Letter”尺寸才会生成打印输出;在这种情况下,我的意思是打印机“运行”,但不打印文本。选择其他尺寸时,打印机不使用纸张或任何东西,它不会激活。
如果我在任何页面上选择任何文本,也会发生同样的事情,也就是说,我选择一个文本并右键单击我选择“打印”选项。
我读到谷歌浏览器中的打印预览图像就是一个图像,由于热敏打印机不打印图像,所以它什么也不打印。
谷歌浏览器无法打印文本的原因可能是什么?
接受的答案也可能是描述从浏览器打印纯文本的可行替代方案。
我最终实现了免费版QZ Tray 2.0.4 。
通过修改测试页面上可用的代码,我能够通过浏览器1正确实现贴纸的打印。
我已经从测试页面改编了以下代码,但根据要生成的打印类型,官方页面上有更多信息:
1在 Google Chrome 版本 60.0.3112.90(官方版本)(64 位)上进行测试。