代码示例js实现浏览器打印功能
最近接触到一个新需求,实现打印机打印小票的功能。打的一桌子小票(惭愧),不过也基本满足了业务上的需求,现在分享一下如何实现(好记性不如烂笔头)
先上代码
// 布局代码 <p id="print"> <p id="print_content"></p> </p> //js 部分代码var f = document.getElementById('printf'); if (f) { document.getElementById("print_content").removeChild(f); } var printhtml = ` <p style="font-size:12px;margin-left: -6px;"> <p style="margin-left:40px;">${this.ticket.title}</p> <p>--------------------------------------</p> <p>提货点:${this.ticket.pickUpAddress}</p> <p>商品名称:${this.ticket.commodityName}</p> <p>下单时间:${this.ticket.paymentTime}</p> <p>提货人:${this.ticket.receiver}</p> <p>联系电话:${this.ticket.receiverPhone}</p> <p>提货码:${this.ticket.pickUpCode}</p> <p>提货时间:${this.ticket.submissionTime}</p> <p style="color:#FFFFFF">.</p> </p>` if (!!window.ActiveXObject || "ActiveXObject" in window) { // 针对IE进行适配 var HKEY_Root, HKEY_Path, HKEY_Key; HKEY_Root = "HKEY_CURRENT_USER"; HKEY_Path = "\\Software\\Microsoft\\Internet Explorer\\PageSetup\\"; //设置网页打印的页眉页脚为空 function PageSetup_Null() { var Wsh = new ActiveXObject("WScript.Shell"); HKEY_Key = "header"; Wsh.RegWrite(HKEY_Root + HKEY_Path + HKEY_Key, ""); HKEY_Key = "footer"; Wsh.RegWrite(HKEY_Root + HKEY_Path + HKEY_Key, ""); HKEY_Key = "margin_left" Wsh.RegWrite(HKEY_Root + HKEY_Path + HKEY_Key, "0"); //键值设定--左边边界 HKEY_Key = "margin_top" Wsh.RegWrite(HKEY_Root + HKEY_Path + HKEY_Key, "0"); //键值设定--上边边界 HKEY_Key = "margin_right" Wsh.RegWrite(HKEY_Root + HKEY_Path + HKEY_Key, "0"); //键值设定--右边边界 HKEY_Key = "margin_bottom" Wsh.RegWrite(HKEY_Root + HKEY_Path + HKEY_Key, "0"); //键值设定--下边边界 } printhtml = ` <p style="font-size:12px;font-weight: 800;height:150px;width:300px"> <p style="margin-left:35px">${this.ticket.title}</p> <p>------------------------------------------------</p> <p>提货点:${this.ticket.pickUpAddress}</p> <p>商品名称:${this.ticket.commodityName}</p> <p>下单时间:${this.ticket.paymentTime}</p> <p>提货人:${this.ticket.receiver}</p> <p>联系电话:${this.ticket.receiverPhone}</p> <p>提货码:${this.ticket.pickUpCode}</p> <p>提货时间:${this.ticket.submissionTime}</p> <p style="color:#FFFFFF;font-weight: 100;">.</p> </p>` } var iframe = document.createElement('iframe'); iframe.id = 'printf'; iframe.style.width = '0'; iframe.style.height = '0'; iframe.style.border = "none"; document.getElementById("print_content").appendChild(iframe); setTimeout(() => { iframe.contentDocument.write(printhtml); iframe.contentDocument.close(); iframe.contentWindow.focus(); iframe.contentWindow.print(); }, 100)
因为要求不能把打印的数据显示在页面上,所以通过iframe的方式去实现。单纯的截取字符串重新赋值body内容能进行打印却把打印的内容展现在页面中了,所以不行。
打印针对IE的浏览器进行了一定程度的调整,IE打印要做特定的处理,详见上面判断代码。打印内容通过模板字符串加内联样式去实现。满足了基本需求。
是否应该也通过截取页面字符串的方式去做可能比较浪费性能些,为什么这么说?因为样式在打印的小票上有一定程度的偏差,修了东墙破了西墙,只能采取相对的方式取舍。如果这种写法不满足,可以采取截取字符串写class尝试。
相关学习推荐:javascript视频教程
Atas ialah kandungan terperinci 代码示例js实现浏览器打印功能. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Kaedah penyesuaian simbol saiz semula dalam CSS bersatu dengan warna latar belakang. Dalam perkembangan harian, kita sering menghadapi situasi di mana kita perlu menyesuaikan butiran antara muka pengguna, seperti menyesuaikan ...

Perbincangan Menggunakan Stylesheets Custom Di Safari Hari Ini Kami akan membincangkan soalan mengenai penggunaan gaya gaya tersuai untuk penyemak imbas Safari. Pemula depan ...

Menggunakan fail font yang dipasang di laman web baru -baru ini, saya memuat turun fon percuma dari internet dan berjaya memasangnya ke dalam sistem saya. Sekarang ...

Cara menggunakan JavaScript atau CSS untuk mengawal bahagian atas dan akhir halaman dalam tetapan percetakan penyemak imbas. Dalam tetapan percetakan penyemak imbas, ada pilihan untuk mengawal sama ada paparan ...

Cara Menggunakan Fail Font yang Dipasang Secara Tempatan Di Laman Web Adakah anda menghadapi situasi ini dalam pembangunan laman web: anda telah memasang fon pada komputer anda ...

Mengapa margin negatif tidak berkuatkuasa dalam beberapa kes? Semasa pengaturcaraan, margin negatif dalam CSS (negatif ...

Masalah pembukaan kontena kerana peninggalan teks yang berlebihan di bawah susun atur flex dan penyelesaian digunakan ...

Bermula dengan Kod Carousel of Baidu News Homepage, ramai orang berharap dapat mengekstrak kod JavaScript dari halaman web untuk mencapai kesan halaman web yang sama, seperti Baidu New ...
