2012-04-16 110 views
4

從Google Chrome v 18打印網絡字體時出現問題,但IE和Firefox完全正常,我使用CSS文件傳遞網絡字體和代碼它如下。從谷歌瀏覽器打印網絡字體時顯示的垃圾字符

@font-face { 

font-family: 'C39P24DmTtNormal'; 
src: url('WebFonts/v100025_-webfont.eot'); 
src: url('WebFonts/v100025_-webfont.eot?#iefix') format('embedded-opentype'), 
    url('WebFonts/v100025_-webfont.woff') format('woff'), 
    url('WebFonts/v100025_-webfont.ttf') format('truetype'), 
    url('WebFonts/v100025_-webfont.svg#C39P24DmTtNormal') format('svg'); 

font-weight: normal; 
font-style: normal; 
} 

問題屏幕截圖:

enter image description here

圖片說明:

在標記爲紅色上述屏幕截圖的所有的有由網頁字體提供的條形碼在CSS文件中,但打印時顯示如上。

我試圖在Google上進行搜索,但Chrome瀏覽器似乎是possible bug,他們試圖儘快解決此問題。

是否有任何一種解決方法可以幫助我,因爲我不希望我的客戶在他們用來瀏覽我的Web應用程序的每臺計算機上安裝字體。

+0

你有鉻的鏈接錯誤/問題? – Ross 2012-04-16 11:37:57

+0

http://code.google.com/p/chromium/issues/detail?id=98011 – 2012-04-16 11:41:34

+0

這是像打印預覽中發生的問題一樣嗎?屏幕截圖也可能有幫助。 – Ross 2012-04-16 11:47:03

回答

0

我也有從設置中禁用了打印預覽的同樣的問題,但在谷歌瀏覽器的問題。它不允許Web字體在打印之前加載,因此只需啓用它即可。

如果您在body.onLoad上使用Windows.print,請將其作爲問題的真正原因刪除。這僅受Internet Explorer支持,而不受Google Chrome的支持。

例子:

<body onload="window.print();"> 

取出onload,我希望它的伎倆。如果你已經嘗試過,那麼我很抱歉。

1

.svg在來源開端,以不同的格式嘗試,像.svgtruetype

@font-face { 
    font-family: 'EnzoOT-Medi'; 
    src: url('font.eot'); 
    src: url('font.svg') format('truetype'), 
     url('font.eot?#iefix') format('embedded-opentype'), 
     url('font.woff') format('woff'), 
     url('font.ttf') format('truetype'), 
     url('font.svg') format('svg'); 
    font-weight: normal; 
    font-style: normal; 
} 
+0

謝謝你的建議,但其相同的結果沒有任何改變。 – 2012-04-23 07:50:06

+0

它爲我工作,np :) – RynoRn 2012-04-30 11:05:18

0

在我的情況下,這是由於在vw中使用相對字體大小。我在@media print {}中加入了一個大小爲pt的規則,並且工作得很完美。有趣的是,它只發生在Chrome中。

0

此問題的真正解決方法是不要在預先格式化的打印頁面上加載異步Web字體。這樣做您仍然可以使用window.onload = window.print()來強制打印對話框沒有任何問題。

<script> 
 
    WebFontConfig = { 
 
    typekit: { id: 'xxxxxx' } 
 
    }; 
 

 
    (function() { 
 
    var wf = document.createElement('script'); 
 
    wf.src = ('https:' == document.location.protocol ? 'https' : 'http') + 
 
       '://ajax.googleapis.com/ajax/libs/webfont/1.4.7/webfont.js'; 
 
    wf.type = 'text/javascript'; 
 
    wf.async = 'false'; 
 
    var s = document.getElementsByTagName('script')[0]; 
 
    s.parentNode.insertBefore(wf, s); 
 
    })(); 
 
</script>