- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想从我的应用程序创建 Code39 编码的条形码。
我知道我可以为此使用字体,但我不想这样做,因为我必须在服务器上注册字体,而且我有一些非常糟糕的经历。
我在问这个问题后产生的一个例子是答案
最佳答案
这是我目前的代码隐藏,有很多评论:
Option Explicit On
Option Strict On
Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.Drawing.Bitmap
Imports System.Drawing.Graphics
Imports System.IO
Partial Public Class Barcode
Inherits System.Web.UI.Page
'Sebastiaan Janssen - 20081001 - TINT-30584
'Most of the code is based on this example:
'http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/04/25/writing-code-39-barcodes-with-javascript.aspx-generation.aspx
'With a bit of this thrown in:
'http://www.atalasoft.com/cs/blogs/loufranco/archive/2008/03/24/code-39-barcode
Private _encoding As Hashtable = New Hashtable
Private Const _wideBarWidth As Short = 8
Private Const _narrowBarWidth As Short = 2
Private Const _barHeight As Short = 100
Sub BarcodeCode39()
_encoding.Add("*", "bWbwBwBwb")
_encoding.Add("-", "bWbwbwBwB")
_encoding.Add("$", "bWbWbWbwb")
_encoding.Add("%", "bwbWbWbWb")
_encoding.Add(" ", "bWBwbwBwb")
_encoding.Add(".", "BWbwbwBwb")
_encoding.Add("/", "bWbWbwbWb")
_encoding.Add("+", "bWbwbWbWb")
_encoding.Add("0", "bwbWBwBwb")
_encoding.Add("1", "BwbWbwbwB")
_encoding.Add("2", "bwBWbwbwB")
_encoding.Add("3", "BwBWbwbwb")
_encoding.Add("4", "bwbWBwbwB")
_encoding.Add("5", "BwbWBwbwb")
_encoding.Add("6", "bwBWBwbwb")
_encoding.Add("7", "bwbWbwBwB")
_encoding.Add("8", "BwbWbwBwb")
_encoding.Add("9", "bwBWbwBwb")
_encoding.Add("A", "BwbwbWbwB")
_encoding.Add("B", "bwBwbWbwB")
_encoding.Add("C", "BwBwbWbwb")
_encoding.Add("D", "bwbwBWbwB")
_encoding.Add("E", "BwbwBWbwb")
_encoding.Add("F", "bwBwBWbwb")
_encoding.Add("G", "bwbwbWBwB")
_encoding.Add("H", "BwbwbWBwb")
_encoding.Add("I", "bwBwbWBwb")
_encoding.Add("J", "bwbwBWBwb")
_encoding.Add("K", "BwbwbwbWB")
_encoding.Add("L", "bwBwbwbWB")
_encoding.Add("M", "BwBwbwbWb")
_encoding.Add("N", "bwbwBwbWB")
_encoding.Add("O", "BwbwBwbWb")
_encoding.Add("P", "bwBwBwbWb")
_encoding.Add("Q", "bwbwbwBWB")
_encoding.Add("R", "BwbwbwBWb")
_encoding.Add("S", "bwBwbwBWb")
_encoding.Add("T", "bwbwBwBWb")
_encoding.Add("U", "BWbwbwbwB")
_encoding.Add("V", "bWBwbwbwB")
_encoding.Add("W", "BWBwbwbwb")
_encoding.Add("X", "bWbwBwbwB")
_encoding.Add("Y", "BWbwBwbwb")
_encoding.Add("Z", "bWBwBwbwb")
End Sub
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
BarcodeCode39()
Dim barcode As String = String.Empty
If Not IsNothing(Request("barcode")) AndAlso Not (Request("barcode").Length = 0) Then
barcode = Request("barcode")
Response.ContentType = "image/png"
Response.AddHeader("Content-Disposition", String.Format("attachment; filename=barcode_{0}.png", barcode))
'TODO: Depending on the length of the string, determine how wide the image will be
GenerateBarcodeImage(250, 140, barcode).WriteTo(Response.OutputStream)
End If
End Sub
Protected Function getBCSymbolColor(ByVal symbol As String) As System.Drawing.Brush
getBCSymbolColor = Brushes.Black
If symbol = "W" Or symbol = "w" Then
getBCSymbolColor = Brushes.White
End If
End Function
Protected Function getBCSymbolWidth(ByVal symbol As String) As Short
getBCSymbolWidth = _narrowBarWidth
If symbol = "B" Or symbol = "W" Then
getBCSymbolWidth = _wideBarWidth
End If
End Function
Protected Overridable Function GenerateBarcodeImage(ByVal imageWidth As Short, ByVal imageHeight As Short, ByVal Code As String) As MemoryStream
'create a new bitmap
Dim b As New Bitmap(imageWidth, imageHeight, Imaging.PixelFormat.Format32bppArgb)
'create a canvas to paint on
Dim canvas As New Rectangle(0, 0, imageWidth, imageHeight)
'draw a white background
Dim g As Graphics = Graphics.FromImage(b)
g.FillRectangle(Brushes.White, 0, 0, imageWidth, imageHeight)
'write the unaltered code at the bottom
'TODO: truely center this text
Dim textBrush As New SolidBrush(Color.Black)
g.DrawString(Code, New Font("Courier New", 12), textBrush, 100, 110)
'Code has to be surrounded by asterisks to make it a valid Code39 barcode
Dim UseCode As String = String.Format("{0}{1}{0}", "*", Code)
'Start drawing at 10, 10
Dim XPosition As Short = 10
Dim YPosition As Short = 10
Dim invalidCharacter As Boolean = False
Dim CurrentSymbol As String = String.Empty
For j As Short = 0 To CShort(UseCode.Length - 1)
CurrentSymbol = UseCode.Substring(j, 1)
'check if symbol can be used
If Not IsNothing(_encoding(CurrentSymbol)) Then
Dim EncodedSymbol As String = _encoding(CurrentSymbol).ToString
For i As Short = 0 To CShort(EncodedSymbol.Length - 1)
Dim CurrentCode As String = EncodedSymbol.Substring(i, 1)
g.FillRectangle(getBCSymbolColor(CurrentCode), XPosition, YPosition, getBCSymbolWidth(CurrentCode), _barHeight)
XPosition = XPosition + getBCSymbolWidth(CurrentCode)
Next
'After each written full symbol we need a whitespace (narrow width)
g.FillRectangle(getBCSymbolColor("w"), XPosition, YPosition, getBCSymbolWidth("w"), _barHeight)
XPosition = XPosition + getBCSymbolWidth("w")
Else
invalidCharacter = True
End If
Next
'errorhandling when an invalidcharacter is found
If invalidCharacter Then
g.FillRectangle(Brushes.White, 0, 0, imageWidth, imageHeight)
g.DrawString("Invalid characters found,", New Font("Courier New", 8), textBrush, 0, 0)
g.DrawString("no barcode generated", New Font("Courier New", 8), textBrush, 0, 10)
g.DrawString("Input was: ", New Font("Courier New", 8), textBrush, 0, 30)
g.DrawString(Code, New Font("Courier New", 8), textBrush, 0, 40)
End If
'write the image into a memorystream
Dim ms As New MemoryStream
Dim encodingParams As New EncoderParameters
encodingParams.Param(0) = New EncoderParameter(Encoder.Quality, 100)
Dim encodingInfo As ImageCodecInfo = FindCodecInfo("PNG")
b.Save(ms, encodingInfo, encodingParams)
'dispose of the object we won't need any more
g.Dispose()
b.Dispose()
Return ms
End Function
Protected Overridable Function FindCodecInfo(ByVal codec As String) As ImageCodecInfo
Dim encoders As ImageCodecInfo() = ImageCodecInfo.GetImageEncoders
For Each e As ImageCodecInfo In encoders
If e.FormatDescription.Equals(codec) Then Return e
Next
Return Nothing
End Function
End Class
关于.net - 如何在 vb.net 中生成 Code39 条码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/149379/
也许有一个简单的解决方案,但我似乎找不到,我需要在不增加字体大小的情况下增加条形码的高度。 // Barcode Text Block
当我使用code128.createImageWithBarcode()创建图像时,条形码下的文本出现在文档中,但是当我尝试使用createAwtImage创建图像并稍后将其保存到光盘时,条形码下的文
我一直在尝试获取 this库在我的 android 应用程序中工作,但我无法让它成功工作。我有 fragment 显示,相机显示正常,但它似乎没有扫描任何东西(QR、条形码等)。我已经实现了回调接口(
我正在使用 zebraGk420d 打印机。我正在使用垂直条形码标签。如何垂直打印文本和条形码。我的 zpl 代码是这样的 $barcode_ZPL_code="^XA ^FO 150,50^AD,4
我正在尝试创建一个简单的 EAN13 图像来显示字符串中的条形码。 我试过这段代码,但它只能生成一个code128。我可以使用什么来生成 EAN13? class Barcode { class
我尝试使用Zxing解码128C(代码集C)条形码。当我读取 QR_CODE、UPC_A 等其他类型时,我会成功。 这些是我尝试读取的条形码: 是否可以使用 Zxing 读取 128C 条码(非 CO
[已解决]这些应用程序运行良好,没有崩溃,但它应该将 resultView 文本从“Hasil Scan”更新为扫描结果,但事实并非如此。问题是 TextView (结果 View )在扫描后没有更新
我有一个项目,它绘制了一个价格标签,上面有一个条形码。要绘制条形码,我使用设置了 EAN-13 字体的 JLabel。生成价格标签的输入数据由两个条形码属性组成:条形码编号 080432402184
我正在我的应用程序中实现条形码扫描器。我想限制我的检测区域。遵循以下逻辑,但我在某些设备上无法正常工作。 //尝试裁剪框架的中心部分: public class BoxDetector extend
我正在尝试使用 ZXing 库来解码 Datamatrix 条码。这是我的代码示例: BufferedImage bi = img.getBufferedImage(); Hashtable hint
Data Matrix 条形码支持已添加到 iOS 8 中,我可以使用它来读取 Data Matrix 条形码,如果它们是白底黑字(暗色)。但是,它从不读取黑底白字(深色底色)条码。 读这个很好: 无
我有这段代码可以生成条形码: func generateBarcode(from string: String) -> UIImage? { let data = string.data(us
这个问题在这里已经有了答案: What is the actual HEX / binary value of the GS1 FNC1 character? (2 个答案) 关闭 4 年前。 如何
我需要用 code128 barcodes 生成标签在 PHP . 用户几乎可以使用任何打印机打印这些内容。 我有一些具体的要求: 窄条宽度应介于 0.375 毫米和 0.5 毫米之间 最大整体条码宽
我想从我的应用程序创建 Code39 编码的条形码。 我知道我可以为此使用字体,但我不想这样做,因为我必须在服务器上注册字体,而且我有一些非常糟糕的经历。 我在问这个问题后产生的一个例子是答案 最佳答
将零抑制的八位 GTIN-12 标识符(表示为 UPC-E 条形码)转换为 UPC-A 条形码中显示的完整十二位版本的算法是什么? 最佳答案 从以下模式映射可以最清楚地看出在 UPC-E 和 UPC-
HTML文件 进程.php $value = $_post['barcode_value']; 嗨, friend 们,我要为 Android 设备开发一个 Web 应用程序,如果我点击输入文本框
我有一个相当大的 XML 数据集,例如: … … … … … … Mon, 24 Aug 2015, 8:30am
我正在测试来自 android-vision 的条码 API repo (多跟踪器应用程序)。但我只能扫描二维码,我还想扫描一维条形码,如 EAN 13。我怎样才能做好这项工作?? Ps.: 另外,我
我想从 C# 程序创建 DataMatrix ECC200 条码。是否有关于如何将信息编码到条形码中的文档,或者是否有第 3 方程序集来实现此目的? 最佳答案 你看过iec16022sharp了吗?
我是一名优秀的程序员,十分优秀!