在一個因緣際會的情況下,開發的系統需要將文字轉成圖型檔儲存,
於是又展開了一場Google之旅,整理好這個技巧做個筆記留存...
只要是在微軟Office的文書作業環境中一定會有個字型的選項,
如下圖在Word介面的功能區,選擇[Cooper Black]所呈現的文字,
在可設定字型的介面都可以依設定呈現相同內容但不同樣式的文字,
在這裡網頁的Html程式碼中設定上述的字型,也會呈現下面的效果,
ABCDEFGHI
如果複製上述文字後在記事本貼上,那麼就不會有任何文字效果了,
所以把不同的風格的文字變成圖型檔案,就不用操作繪圖軟體了(^^)
如下圖一樣在Word選擇[Wingdings]字型,一樣的文字內容...
把這些"文字"變成圖型檔就可以做不同的用途了...
所以如下圖做一個簡單的網頁設計,
選擇字型、輸入字串、然後預覽並輸出圖檔,
在網頁中做一個選擇字型的下拉選單,
程式碼技巧利用System.Drawing.FontFamily類別即可完成,
不過網頁無法像Word介面那樣直接預覽,可能還需要繼續爬文吧...
有了文字內容及字型樣式,利用System.Drawing類別的技巧來處理,
如下圖程式碼,老實說這是從網海茫茫東拼西湊出來的...
雖然有點兒知其然而不知其所以然,不過這方法還真是好用!
MSDN官網也有System.Drawing類別的說明,
例如上圖第67行,GraphicsUnit如果不是用"Pixel"效果就會有差,
要改變圖片背景及字體的顏色在第73行及74行...
上述提到使用者在網頁中選擇字型、輸入字串...
上圖的[Preview]按鈕便是執行預覽並輸出圖檔的部分,
如下程式碼,
第42~44行將設定的內容顯示於Label物件Source_L中,
字型設定來自於Label物件FontSample_L的Font.Name屬性,
這個在剛剛下拉選單選完的時候就設定好了,
然後文字"Good morning!"及大小"28"來自於二個Textbox物件,
分別是Tbx_SourceText以及Tbx_SourceSize...
第46行設定儲存路徑及檔案後,執行自建函數GetBarCodeImage,
第55行在GetBarCodeImage函數中呼叫執行CreateBarCode函數,
CreateBarCode函數利用上述System.Drawing類別的技巧處理,
最後將回傳的圖形物件依據指定的路徑及檔名儲存...
產出的A.png檔如下:
此次筆記一開始有提到這是個因緣際會的情況促使尋找這個技巧,
所以有沒有察覺在上述自建函數的名稱中都有"BarCode"的字樣?
因為要開發的系統需要有一個條碼發送的功能,
讓每個授權都有一組加密防偽且唯一的識別碼,
在編碼的演算過程後將識別碼轉成條碼圖型發送,
如下圖,
從網路下載"IDAutomationHC39M"字型並安裝後就可以拿來用了...
完整的程式碼及範例已壓縮放置雲端空間:
https://1drv.ms/u/s!AO1CPC3fzWzdgrl1
留言列表