在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設置自定義字體(說是有些機子可以但是有些機子無效,具體我也沒試過,感興趣的大伙自己試試。)
