在emr病歷打印中(病歷頁面設置默認字體為宋體),使用window.print()進行前端網頁打印,會發現Chrome的網頁打印預覽中是不支持字體加粗效果的,雖然頁面效果上用font-weight是有效果的,但是就是那么神奇,打印出來就不行(具體什么原因還不知道)。
原頁面是這樣的

宋體打印情況下(粗體沒了)

如果去掉默認的宋體字體(除了標題其他的都變成雅黑)

國家病歷打印要求中的字體統一為宋體的要求,沒辦法只能想辦法搞了。
然后做了一個頁面測試了下:

嘗試了幾種不同宋體字體的效果和網友提供加陰影的方式,於是總結了兩個比較可靠的解決方案:
① 換用其他宋體字體(如華文宋體)
<style media="print"> * { font-family: STSong; } </style>
效果如下:


感覺可以解決問題,而且修改量比較少。
② 就是利用文字陰影,你沒看錯,文字陰影。
<style media="print"> .bold-shadow { text-shadow:0.15pt 0px 0px black,0.25pt 0px 0px black,0.35pt 0px 0px black,-0.25pt 0px 0px black,0px 0.25pt 0px black,0px -0.25pt 0px black; } </style> <script> function print() { $('.sde-grouptitle').addClass('bold-shadow'); // 給需要加粗的元素添加打印加粗class document.execCommand("print"); // 執行打印 } </script>
好家伙,出來的效果幾乎以假亂真,打印預覽效果如下:


打印出來的效果:

打印效果還是杠杠的,這種方式就是比較麻煩,需要改造代碼。
大佬們還試過其他方式,在這里也記錄下,或者小伙伴們有好的解決方案也歡迎留言。
① 給Chrome設置自定義字體(說是有些機子可以但是有些機子無效,具體我也沒試過,感興趣的大伙自己試試。)

