iT邦幫忙

0

提供伺服器上的特殊字型讓 User 選擇

makey 2010-10-19 09:32:3410420 瀏覽

請教前輩們,在網頁中提供字型讓 User 選擇,
一般都會用系統預設的字型,也就是說使用者
電腦上都有的字型,例如:細明體、標楷體,
程式碼如最後...

那如果提供的,是伺服器上的特殊字型,例如
華康行書體等,那麼程式要如何改?

還有字型檔案大,中文字型一個約5MB,下載
時間很久,但是,像下列網站:
http://www.vampprint.com/A1-1.php?page=1
此網站提供許多字型,且 Loading 算蠻快的,
請問是怎麼做到的呢?

<title>Font Test</title>

<style>
.content {font: 36px Tahoma}
</style>

<script>
function changeFont(font) {
var ss = document.all ? document.styleSheets[0].rules : document.styleSheets[0].cssRules;
ss[0].style.fontFamily = font;
}
</script>

<div id="title">
字型:
<select onChange="changeFont(this.value)">
<option value="新細明體">新細明體</option>
<option value="標楷體">標楷體</option>
<option value="Arial">Arial</option>
<option value="Courier New">Courier New</option>
<option value="Verdana">Verdana</option>
</select>
</div>

<hr>

<div class="content">
TEST 字型測試
</div>

fillano iT邦超人 1 級 ‧ 2010-10-19 11:53:17 檢舉
http://www.w3.org/TR/css3-webfonts/

這是ccs3 webfont的標準,看起來google font是用這個方式提供的。不過中文字型很大,像這樣下載恐怕不太實際...而且你的需求看起來會有版權問題,基本上不可能實現。
12
silly
iT邦好手 2 級 ‧ 2010-10-19 10:29:01

字型可以指定在伺服器上的位置,這樣user就可以下載顯示,不過要考量智慧財產。
或可以參考一些免費字型或google fonts

那個網站呈現出來的是圖檔(伺服器端用所選擇的字型加上文字處理成圖檔),並不是純文字。

mjj2000 iT邦新手 5 級 ‧ 2012-04-15 00:16:44 檢舉

這邊有中文web font資源可以參考
http://www.justfont.com/fonts

把網站上指定的一段JavaScript放到網頁中,讀取頁面時就會自動去蒐集頁面中用到的字,
server只回傳需要的字集,而不是完整字型檔,字型檔案自然就小很多了。

2
player
iT邦大師 1 級 ‧ 2010-10-22 20:06:05

1.提供字型檔給User自行下載與安裝, 但是請小心版權問題
就算是你花錢買的正版字型光碟
通常也不包含轉散佈的權力

2.做成圖檔
(請自備美工軟體, 用文字層貼上, 再存成 jpeg 或 gif 或 png檔)

3.把字型裡的字抽出來, 例如
W3C的 http://www.w3.org/TR/WOFF/

或是
MS的EOT (不是很好用的感覺, 非IE的瀏覽器可能不支援此CSS語法)
http://www.player.idv.tw/prog/index.php/.EOT

6
逮丸逮丸
iT邦大師 1 級 ‧ 2010-10-25 00:26:38

有幾個需要澄清:
1.範例網站中能變換的 字是圖型
您所提出的這個網站:
http://www.vampprint.com/A1-1.php?page=1
其中所看到的名片的字「公司名稱」
是事先用不同字型畫出的圖型檔:
http://www.vampprint.com/data/ImageSource/BG\_H11/CompanyName.gif
http://www.vampprint.com/data/ImageSource/BG\_H13/CompanyName.gif
可變換其路徑的數字部份,
至於其英文代號是什麼就得看,
換成什麼字型呈現後,
該目錄名稱會是什麼,來做歸納。

2.該網站所提供字型的選擇,
完全是Server上有該字型,
只是透過網頁的選單,
叫 server 用哪一字型,寫什麼字,
然後 server 做出該圖型
再把圖檔呈現在網頁的版型中,
所以與您電腦裡 有沒有該字型 沒有關係
也更不是把 server 上的字型
下載到您電腦中。

3.如何達成您的意圖
您可能想要做到的是:
看使用者的電腦有什麼字型,
然後可以在網頁上呈現這些字型,
讓使用者可決定 什麼字用什麼字型 在網頁上呈現。
像是這個網站:
http://www.typetester.org/
點 specify your own 的下拉選單,
秀出您電腦有裝的字型來。

壞消息是:
單靠 JavaScript 是無法讀取使用者電腦系統中的字型列表,
然後自行畫出 字型選單供選擇。

好消息是:
JavaScript不能,但利用 Flash 的 ActionScript 可以有這個功能
怎麼做?請參考這篇:
Detect visitor’s fonts with Flash
然後再結合 JavaScript 來做出使用者系統裡的字型選單。

這個解決方案,
應該是比較接近您想要做到的吧!

我要發表回答

立即登入回答