利用ASP實現三個強大功能之二

來源:互聯網
上載者:User

在Web上動態建立條碼

  這篇文章討論的是如何根據資料庫的欄位在web上動態地建立條碼的問題,這在如下的情況下非常有用:使用者輸入資訊到系統中,然後顯示一個總結頁面“這就是你所輸入的”,這個頁面可以被列印,並在日後可以用條碼進行跟蹤。

  實現這個功能的關鍵在於如何將數值比如“ABC”翻譯為條碼。這裡我們使用“代碼39”,關於它的詳細情況,請參閱有關定義。我想將產生的條碼顯示在web頁面上,這樣使用者就能列印包含條碼的這個頁面,然後,再在圖形系統的處理中使用它。許多使用者都在系統中安裝了“代碼39”字型,所以我就能夠在頁面中改變它,但是我不想依賴它們。我想在頁面中建立,並且獨立於瀏覽器和電腦。

  我的解決方案是:為Code39中每一個支援的字元建立GIF圖形檔案。我使用Microsoft Paint軟體建立Code39字型大小的文字框,然後為每一個字元建立一個圖形。接著,使用Microsoft Image Composer將它們轉換為GIF格式。最後,使用掃描軟體檢查這些字元,看看是否能正確地解釋。下面,你將看到A、B、C以及星號(*)的條碼:

Code for A

Code for B

Code for C

Code for Asterisk

  然後,為了在ASP頁面中描繪資料庫中數值的條碼,僅僅簡單地遍曆BarCodeText變數字串中的每一個字元,然後建立< IMG SRC=“...” >標記以替換字元為相應條碼圖形檔案。這非常簡單,不需要在用戶端安裝字型檔。相關代碼如下:


’Code 39 barcodes require an asterisk as the start and stop characters

Response.write "< IMG SRC=""http://edu.cnzz.cn/NewsInfo/http://edu.cnzz.cn/NewsInfo/asterisk.gif"" WIDTH=""30"" HEIGHT=""36"">"

For x = 1 to Len(Trim(rst("BarCodeText")))

Response.Write "< IMG SRC=""" & mid(rst("BarCodeText"),x,1) & _

".gif"" WIDTH=""30"" HEIGHT=""36"">"

Next

’Code 39 barcodes require an asterisk as the start and stop characters

Response.write "< IMG SRC=""http://edu.cnzz.cn/NewsInfo/http://edu.cnzz.cn/NewsInfo/asterisk.gif"" WIDTH=""30"" HEIGHT=""36"">"

  如果在記錄集目前記錄中BarCodeText的數值是“ABC”,那麼執行上述代碼後,HTML的結果是:

< IMG SRC="http://edu.cnzz.cn/NewsInfo/http://edu.cnzz.cn/NewsInfo/asterisk.gif" WIDTH="30" HEIGHT="36">

< IMG SRC="http://edu.cnzz.cn/NewsInfo/A.gif" WIDTH="30" HEIGHT="36">

< IMG SRC="http://edu.cnzz.cn/NewsInfo/B.gif" WIDTH="30" HEIGHT="36">

< IMG SRC="http://edu.cnzz.cn/NewsInfo/C.gif" WIDTH="30" HEIGHT="36">

< IMG SRC="http://edu.cnzz.cn/NewsInfo/http://edu.cnzz.cn/NewsInfo/asterisk.gif" WIDTH="30" HEIGHT="36">

然後,將顯示如下圖形:

現在,將該頁面列印後,就可以被條碼掃描器所跟蹤了。

  有2點關於條碼的注意事項:不是所有的條碼都能支援所有的字元集。Code39是很好而且很簡單的一種。它具備可變長度,支援所有的大寫字元、數字、星號以及7個特殊字元。對於每個字元,它使用風格一致的5線(2寬3窄)4空(指間隙,1寬3窄)形式。另外的字元集支援更多的,使用不同的解碼方案。確認對每個字元都建立了GIF圖形檔案,同時,你可以修改圖形的寬度和高度屬性,從而在頁面上顯示稍大的或者稍小的條碼。

  另外,如果遇到特殊的字元,上面的遍曆迴圈代碼將不會工作,因為,不能將GIF檔案命名為+.gif。這時,就要編寫一個接受字元Ascii數值的函數,然後使用CASE語句返回等價於檔案名稱的字串。如果資料庫欄位的數值是整型或者僅僅包含字元或者數字,上面的遍曆代碼就已經很好了!

  以上介紹的方法不是很複雜,但是在某些方面卻是很簡單,而且很好用。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.