打印超文本的時候,有時候會發現html中設置的css樣式顯示不正常,字體根本不是設置的字體,這種情況有可能是:
1.該操作系統沒有安裝自己指定的那種字體,那么沒有安裝自然就不能顯示設置的字體。
2.該操作系統已經安裝了該字體,但是在css樣式中指定字體的時候,用的不是字體實名,而是字體別名,因為字體別名屬於web領域的行業習慣,不屬於國際規范,事實上非常亂,lodop出於性能考慮,所以lodop沒有把別名對照功能加進去。
如何查看字體實名:
(1)可以進入打印設計,在打印設計里添加個超文本,展開字體選項的下拉列表,可以查看到該windows操作系統安裝的所有字體,他們本身的實名。
(2)在操作系統的控制面板里,點擊字體,彈出的窗口中,可以看到“字體名稱:”,后面這個就是字體的實名。
有些時候發現英文字母連起來了,有些字母的部分連着其他字母的部分,間隔不正常,這種也可能是使用字體別名導致的,更改為正常的字體實名后,可以顯示正常。
在使用中文“”“”中文引號的時候,中文引號中是漢字,漢字和中文引號發生重疊,這種也可以通過指定一個具體的字體實名,讓它顯示正常。
這種字體顯示不正常,字母連接,和引號重疊,在打印設計里可能正常顯示,預覽和打印不正常,這種時候可以通過指定具體字體實名試試。之前的相關博文:Lodop中特殊符號¥打印設計和預覽不同
也可以通過把ADD_PRINT_HTM改成ADD_PRINT_HTML顯示出該樣式,ADD_PRINT_HTML是圖形模式,能較好的顯示出頁面原本的樣式,但是這種ADD_PRINT_HTML放大后會不清晰,適合高精度的圖文打印機,普通打印機,還是用建議使用指定具體的字體實名方式解決這三個問題。
測試用的代碼以及效果,我本機有安裝這個楷體字體的:
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>WEB打印控件LODOP</title> <script language="javascript" src="LodopFuncs.js"></script> </head> <body> <div id="dd"> <p>沒有字體樣式的 非KaiTi “引號”</p> <p style="font-family:'楷體';">超文本字體楷體 非KaiTi “引號”</p> <p style="font-family:'KaiTi';">超文本字體別名KaiTi “引號”</p> </div> <a href="javascript:prn1_preview()">打印預覽</a> <script language="javascript" type="text/javascript"> var LODOP; //聲明為全局變量 function prn1_preview() { LODOP=getLodop(); LODOP.PRINT_INIT(""); LODOP.ADD_PRINT_HTM(157,40,300,114,document.getElementById("dd").innerHTML) LODOP.ADD_PRINT_HTML(300,40,300,114,document.getElementById("dd").innerHTML) LODOP.PRINT_DESIGN(); //LODOP.PREVIEW(); }; </script> </body>