1

我需要在一个 html 页面中显示一些 Code 128 代码,在我的场景中,我不想生成图像或使用 javascript 来构建条形码。用户通过程序编辑 html(模板),然后将 HTML 转换为 PDF 并发送到打印机,但是图像会给转换器带来一些问题,所以我尽量避免使用它们,不支持 javascript。

我从这里下载了 Code 128 字体:http ://www.dafont.com/it/code-128.font我使用它如下:

<font face="Code 128">code</font>

但仍然有普通文本(不是代码 128 条码)。

关于如何使用字体显示安装的 Code 128 字体的任何建议?

4

2 回答 2

3

font标签真的很旧,不应该使用。HTML5 完全不支持它。最好使用 CSS 中的 face,但必须使用正确的名称。此外,字体必须安装在客户端 PC 上。

也许更好:你也可以在 CSS 中声明一个字体,所以字体文件是从你的服务器下载的,因为条形码字体不常用。

@font-face您可以使用规则在 CSS 中定义字体。然后你可以在你的 CSS 中使用这张脸。您必须拥有不同格式的字体文件。常用的,woffwoff2做的。您可以使用任何在线字体转换器将下载的 ttf 文件转换为 woff。谷歌搜索'convert ttf to woff'会给你一打。

@font-face {
  font-family: 'Code128';
  src:  url('code128.woff2') format('woff2'),
        url('code128.woff') format('woff');
}

之后,您可以像这样在 CSS 中使用它:

.barcode {
  /* Use the name of the face that is installed, or the one you defined above */
  font-family: 'Code128'; 
}

然后,您可以使用类名将字体应用于任何元素:

<span class="barcode">code</span>

CSSTricks.com上有一个很好的教程,其中包含更多细节和更好的浏览器回退。

于 2015-07-27T10:08:36.887 回答
0
'0~9 and A~Z Barcode
Public Function GenerateCode128A(St As String) As String
    Dim sum As Integer = 0
    For i As Integer = 1 To Len(St)
        sum += ((Asc(Mid(St, i, 1)) - 32) * i)
    Next
    sum = (sum + 103) Mod 103
    If (sum >= 95) Then sum += 68
    Return Chr(203) & St & Chr(sum + 32) & Chr(206)
End Function

'0~9 and A~Z and a~z Barcode
Public Function GenerateCode128B(St As String) As String
    Dim sum As Integer = 0
    For i As Integer = 1 To Len(St)
        sum += ((Asc(Mid(St, i, 1)) - 32) * i)
    Next
    sum = (sum + 104) Mod 103
    If (sum >= 95) Then sum += 68
    Return Chr(204) & St & Chr(sum + 32) & Chr(206)
End Function

'0~9 Number Only Small width
Public Function GenerateCode128C(St As String) As String
    If Len(St) Mod 2 = 1 Then St = "0" + St
    Dim sum As Integer = 0
    Dim Stn As String = ""
    For i As Integer = 1 To Len(St) Step 2
        Dim ch As Int16 = Int16.Parse(Mid(St, i, 2))
        sum += (ch * ((i \ 2) + 1))
        If (ch >= 95) Then ch += 68
        Stn &= Chr(ch + 32)
    Next
    sum = (sum + 105) Mod 103
    If (sum >= 95) Then sum += 68
    Return Chr(205) & Stn & Chr(sum + 32) & Chr(206)
End Function
于 2020-05-02T21:41:10.050 回答