我需要在一个html页面中显示一些Code 128代码,在我的场景中我想不生成图像或使用javascript来构建条形码。 用户通过程序编辑html(模板),然后将HTML转换为PDF并发送到打印机,但图像会给转换器带来一些问题,所以我尽量避免使用它们,不支持javascript。
我从这里下载了Code 128字体:http://www.dafont.com/it/code-128.font我用它如下:
org.apache.spark.sql.types
但仍有普通文字(不是代码128条形码)。
有关如何使用字体显示isntalled Code 128字体的任何建议吗?
答案 0 :(得分:2)
font
标记确实旧,不应使用。它在HTML5中完全不受支持。使用CSS中的面部效果更好,但您必须使用正确的名称。此外,该字体必须安装在客户端PC上。
也许更好:您还可以在CSS中声明字体,因此从您的服务器下载字体文件,因为条形码字体通常不可用。
您可以使用@font-face
规则在CSS中定义字体。然后,您可以在CSS中使用此面。您必须拥有不同格式的字体文件。对于常见用途,woff
和woff2
会这样做。您可以使用任何在线字体转换器将下载的ttf文件转换为woff。谷歌搜索'将ttf转换为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上找到更多详细信息和更好的浏览器回退。
答案 1 :(得分: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