1
我創建了一個SSRS報告,其中包含一些Code128條形碼。條碼是使用最新的zxing.net庫生成的。我想在Code128條形碼中包含製表符(char(9))。但它會失敗,以下異常消息:如何使用zxing.net處理Code128中的特殊字符
System.ArgumentException:壞字符輸入:
不用說,它的工作原理就像一個沒有製表性格魅力。
在報告中使用GetBarCodeHorizontal
來生成條形碼。然而,用於測試目的,我把它包成一個Visual Studio VB項目:
Class MainWindow
Public Function GetBarCodeHorizontal(ByVal s As String, ByVal width As Integer) As Byte()
Dim writer As New ZXing.BarcodeWriter()
Dim ms As System.IO.MemoryStream = New System.IO.MemoryStream()
writer.Format = ZXing.BarcodeFormat.CODE_128
writer.Options = New ZXing.Common.EncodingOptions
writer.Options.Width = width
writer.Options.Height = 60
writer.Options.PureBarcode = False
'writer.Options.Hints.Add(ZXing.EncodeHintType.CHARACTER_SET, "UTF-8")
Dim bmp As System.Drawing.Bitmap = writer.Write(s)
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Png)
Dim imagedata As Byte()
imagedata = ms.GetBuffer()
Return imagedata
End Function
Private Sub MainWindow_OnLoaded(sender As Object, e As RoutedEventArgs)
Try
Dim barCodeHorizontal = GetBarCodeHorizontal("3999999 80 1XXXXXX8 r1XX3", 200)
Catch ex As Exception
Console.WriteLine(ex)
End Try
End Sub
End Class
問題:
- 我怎樣才能解決這個問題?
- 這是zxing庫的限制嗎?
- 是否有任何合適的解決方法(或甚至另一個庫)?
你爲什麼試圖在條碼中使用標籤?也許有一點背景,我們可以提出一個替代方案。 – Nefariis
條形碼ist用於將信息插入基於控制檯的傳統系統。該選項卡用於切換到下一個字段。條形碼應該如下所示:[MaterialNumber] [Tab] [Quantity] [Tab] [Batch] [Tab] [Location]。你知道另一個與SSRS合作的圖書館嗎? – Joel
您是否可以使用另一個字符切換到下一個字段,如管道「|」? zxing是標準 - 這裏有一些其他的選項,雖然 - http://stackoverflow.com/questions/8116990/looking-for-best-barcode-scanner-library-besides-zxing ...我會看看如果我可以改變第一個問題....你將遇到的問題是「表格式」不是任何編碼表(utf-8,iso等)的一部分,所以我沒有看到「表格式」的方式可以永遠工作的圖書館...也許如果你能找到一個有它的表,那麼找到支持該表的圖書館 - 但除此之外...... – Nefariis