The BarcodeWriteDatamatrix Class is available in LEADTOOLS Document and Medical Imaging toolkits.
This class contains information for writing Data Matrix barcodes.Visual Basic (Declaration) | |
---|---|
<DataContractAttribute(Namespace="http://Leadtools.Services.Barcode.DataContracts/2009/01", Name="BarcodeWriteDatamatrix")> Public Class BarcodeWriteDatamatrix |
Visual Basic (Usage) | Copy Code |
---|---|
Dim instance As BarcodeWriteDatamatrix |
C# | |
---|---|
[DataContractAttribute(Namespace="http://Leadtools.Services.Barcode.DataContracts/2009/01", Name="BarcodeWriteDatamatrix")] public class BarcodeWriteDatamatrix |
C++/CLI | |
---|---|
[DataContractAttribute(Namespace="http://Leadtools.Services.Barcode.DataContracts/2009/01", Name="BarcodeWriteDatamatrix")] public ref class BarcodeWriteDatamatrix |
Visual Basic | Copy Code |
---|---|
Private Function ConvertFromStringArray(ByVal data As String()) As Byte() If data Is Nothing OrElse data.Length = 0 Then Return Nothing End If Dim list As New List(Of Byte()) Dim ascii As ASCIIEncoding = New ASCIIEncoding() Dim length As Integer = 0 Dim i As Integer = 0 Do While i < data.Length Dim bytes As Byte() = ascii.GetBytes(data(i)) list.Add(bytes) length += bytes.Length length += 1 i += 1 Loop Dim ret As Byte() = New Byte(length - 1) {} Dim index As Integer = 0 i = 0 Do While i < list.Count Dim bytes As Byte() = list(i) bytes.CopyTo(ret, index) index += bytes.Length + 1 i += 1 Loop Return ret End Function Public Sub WriteExample() Dim client As BarcodeServiceClient = New BarcodeServiceClient() Dim sourceBinaryData As RawBinaryData = New RawBinaryData() sourceBinaryData.Data = File.ReadAllBytes(Path.Combine(LEAD_VARS.ImagesDir, "barcode1.tif")) Dim convertOptions As RasterConvertOptions = New RasterConvertOptions() convertOptions.Source = sourceBinaryData convertOptions.Destination = Nothing convertOptions.Format = RasterImageFormat.RasPdf convertOptions.FirstPage = 1 convertOptions.LastPage = 1 convertOptions.BitsPerPixel = 24 convertOptions.QualityFactor = 2 Dim rc As LeadRectangle = New LeadRectangle() rc.X = 100 rc.Y = 0 rc.Width = 0 rc.Height = 0 Dim barcodeText As String() barcodeText = New String(0) {} Dim matrixData As BarcodeData = New BarcodeData() matrixData.Location = rc barcodeText(0) = "Data Matrix Default Size" matrixData.Data = ConvertFromStringArray(barcodeText) Dim postData As BarcodeData = New BarcodeData() rc.X = 50 rc.Y = 50 rc.Width = 300 rc.Height = 200 postData.Location = rc barcodeText(0) = "12345678901" postData.Data = ConvertFromStringArray(barcodeText) Dim standardData As BarcodeData = New BarcodeData() rc.X = 360 rc.Y = 50 rc.Width = 300 rc.Height = 250 standardData.Location = rc barcodeText(0) = "012345678901" standardData.Data = ConvertFromStringArray(barcodeText) Dim patchData As BarcodeData = New BarcodeData() rc.X = 660 rc.Y = 50 rc.Width = 200 rc.Height = 450 patchData.Location = rc barcodeText(0) = "1100" patchData.Data = ConvertFromStringArray(barcodeText) Dim stackedData As BarcodeData = New BarcodeData() rc.X = 860 rc.Y = 50 rc.Width = 300 rc.Height = 450 patchData.Location = rc stackedData.Location = rc barcodeText(0) = "1234567890123" stackedData.Data = ConvertFromStringArray(barcodeText) Dim pdf417Data As BarcodeData = New BarcodeData() rc.X = 50 rc.Y = 400 rc.Width = 0 rc.Height = 0 pdf417Data.Location = rc barcodeText(0) = "Pdf417" pdf417Data.Data = ConvertFromStringArray(barcodeText) Dim microPdf417Data As BarcodeData = New BarcodeData() rc.X = 200 rc.Y = 600 rc.Width = 0 rc.Height = 0 microPdf417Data.Location = rc barcodeText(0) = "Micro Pdf417" microPdf417Data.Data = ConvertFromStringArray(barcodeText) Dim qrData As BarcodeData = New BarcodeData() rc.X = 200 rc.Y = 400 rc.Width = 0 rc.Height = 0 qrData.Location = rc barcodeText(0) = "QR Code Model 2 AutoSize" qrData.Data = ConvertFromStringArray(barcodeText) Dim barColor As BarcodeColor = New BarcodeColor() barColor.BarColor = "Black" barColor.SpaceColor = "White" Dim bar1d As Barcode1d = New Barcode1d() bar1d.OutShowText = True Dim barPDF As BarcodeWritePdf = New BarcodeWritePdf() barPDF.AspectHeight = 0 barPDF.AspectWidth = 0 barPDF.Columns = 0 barPDF.Rows = 0 barPDF.EccLevel = BarcodePdf417EccLevelFlags.UsePercent barPDF.EccPercentage = 50 barPDF.Justify = BarcodeJustifyFlags.Right barPDF.Module = 21 barPDF.ModAspectRatio = 4 Dim barDM As BarcodeWriteDatamatrix = New BarcodeWriteDatamatrix() barDM.Justify = BarcodeJustifyFlags.Right barDM.FileIdHigh = 0 barDM.FileIdLow = 0 barDM.GroupNumber = 0 barDM.GroupTotal = 0 barDM.XModule = 0 Dim barQR As BarcodeWriteQr = New BarcodeWriteQr() Dim options As WriteOptions = New WriteOptions() Dim dataMatrix As WriteBarcode2DDataMatrix = New WriteBarcode2DDataMatrix() dataMatrix.Type = WriteBarcode2DDataMatrixType.DatamatrixDefault dataMatrix.Data = matrixData options.Add(dataMatrix) Dim standard As WriteBarcode1dStandard = New WriteBarcode1dStandard() standard.Type = WriteBarcodeStandardFlags.Ean13 standard.Data = standardData options.Add(standard) Dim post As WriteBarcode1dPost = New WriteBarcode1dPost() post.Type = WriteBarcode1dPostType.Planet post.Data = postData options.Add(post) Dim patch As WriteBarcode1dPatch = New WriteBarcode1dPatch() patch.Type = WriteBarcode1dPatchType.Patchcode patch.Data = patchData options.Add(patch) Dim stacked As WriteBarcode1dStacked = New WriteBarcode1dStacked() stacked.Type = WriteBarcode1dStackedType.Rss14Stacked stacked.Data = stackedData options.Add(stacked) Dim pdf417 As WriteBarcode2DPdf417 = New WriteBarcode2DPdf417() pdf417.Type = WriteBarcode2DPdf417Type.Pdf417 pdf417.Data = pdf417Data options.Add(pdf417) Dim microPdf417 As WriteBarcode2DMicroPdf417 = New WriteBarcode2DMicroPdf417() microPdf417.Type = WriteBarcode2DMicroPdf417Type.MicroPdf417 microPdf417.Data = microPdf417Data options.Add(microPdf417) Dim qr As WriteBarcode2DQr = New WriteBarcode2DQr() qr.Type = WriteBarcode2DQrType.Default qr.Data = qrData options.Add(qr) Dim request As WriteRequest = New WriteRequest() request.Code1d = bar1d request.CodeColor = barColor request.CodeDatamatrix = barDM request.CodePdf = barPDF request.CodeQr = barQR request.ConvertOptions = convertOptions request.TypeFlags = BarcodeMajorTypeFlags.BarcodesDatamatrixWrite request.Unit = BarcodeUnit.ScanlinesPerPixels request.WriteFlags = BarcodeWriteFlags.UseColors Or BarcodeWriteFlags.Transparent Or BarcodeWriteFlags.InitializationReader Or BarcodeWriteFlags.DisableCompression request.WriteOptions = options Dim response As WriteResponse = client.Write(request) If Not response.Destination Is Nothing Then If TypeOf response.Destination Is RawBinaryData Then File.WriteAllBytes(Path.Combine(LEAD_VARS.ImagesDir, "Write_Barcode.Pdf"), (TryCast(response.Destination, RawBinaryData)).Data) End If End If client.Close() End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class |
C# | Copy Code |
---|---|
byte[] ConvertFromStringArray(string [] data) { if(data == null || data.Length == 0) return null; List<byte[]> list = new List<byte[]>(); ASCIIEncoding ascii = new ASCIIEncoding(); int length = 0; for(int i = 0; i < data.Length; i++) { byte[] bytes = ascii.GetBytes(data[i]); list.Add(bytes); length+= bytes.Length; length++; } byte[] ret = new byte[length]; int index = 0; for(int i = 0; i < list.Count; i++) { byte[] bytes = list[i]; bytes.CopyTo(ret, index); index += bytes.Length + 1; } return ret; } public void WriteExample() { BarcodeServiceClient client = new BarcodeServiceClient(); RawBinaryData sourceBinaryData = new RawBinaryData(); sourceBinaryData.Data = File.ReadAllBytes(Path.Combine(LEAD_VARS.ImagesDir,"barcode1.tif")); RasterConvertOptions convertOptions = new RasterConvertOptions(); convertOptions.Source = sourceBinaryData; convertOptions.Destination = null; convertOptions.Format = RasterImageFormat.RasPdf; convertOptions.FirstPage = 1; convertOptions.LastPage = 1; convertOptions.BitsPerPixel = 24; convertOptions.QualityFactor = 2; LeadRectangle rc = new LeadRectangle(); rc.X = 100; rc.Y = 0; rc.Width = 0; rc.Height = 0; string[] barcodeText; barcodeText = new string[1]; BarcodeData matrixData = new BarcodeData(); matrixData.Location = rc; barcodeText[0] = "Data Matrix Default Size"; matrixData.Data = ConvertFromStringArray(barcodeText); BarcodeData postData = new BarcodeData(); rc.X = 50; rc.Y = 50; rc.Width = 300; rc.Height = 200; postData.Location = rc; barcodeText[0] = "12345678901"; postData.Data = ConvertFromStringArray(barcodeText); BarcodeData standardData = new BarcodeData(); rc.X = 360; rc.Y = 50; rc.Width = 300; rc.Height = 250; standardData.Location = rc; barcodeText[0] = "012345678901"; standardData.Data = ConvertFromStringArray(barcodeText); BarcodeData patchData = new BarcodeData(); rc.X = 660; rc.Y = 50; rc.Width = 200; rc.Height = 450; patchData.Location = rc; barcodeText[0] = "1100"; patchData.Data = ConvertFromStringArray(barcodeText); BarcodeData stackedData = new BarcodeData(); rc.X = 860; rc.Y = 50; rc.Width = 300; rc.Height = 450; patchData.Location = rc; stackedData.Location = rc; barcodeText[0] = "1234567890123"; stackedData.Data = ConvertFromStringArray(barcodeText); BarcodeData pdf417Data = new BarcodeData(); rc.X = 50; rc.Y = 400; rc.Width = 0; rc.Height = 0; pdf417Data.Location = rc; barcodeText[0] = "Pdf417"; pdf417Data.Data = ConvertFromStringArray(barcodeText); BarcodeData qrData = new BarcodeData(); rc.X = 200; rc.Y = 400; rc.Width = 0; rc.Height = 0; qrData.Location = rc; barcodeText[0] = "QR Code Model 2 AutoSize"; qrData.Data = ConvertFromStringArray(barcodeText); BarcodeData microPdf417Data = new BarcodeData(); rc.X = 200; rc.Y = 600; rc.Width = 0; rc.Height = 0; microPdf417Data.Location = rc; barcodeText[0] = "Micro Pdf417"; microPdf417Data.Data = ConvertFromStringArray(barcodeText); BarcodeColor barColor = new BarcodeColor(); barColor.BarColor = "Black"; barColor.SpaceColor = "White"; Barcode1d bar1d = new Barcode1d(); bar1d.OutShowText = true; BarcodeWritePdf barPDF = new BarcodeWritePdf(); barPDF.AspectHeight = 0; barPDF.AspectWidth = 0; barPDF.Columns = 0; barPDF.Rows = 0; barPDF.EccLevel = BarcodePdf417EccLevelFlags.UsePercent; barPDF.EccPercentage = 50; barPDF.Justify = BarcodeJustifyFlags.Right; barPDF.Module = 21; barPDF.ModAspectRatio = 4; BarcodeWriteDatamatrix barDM = new BarcodeWriteDatamatrix(); barDM.Justify = BarcodeJustifyFlags.Right; barDM.FileIdHigh = 0; barDM.FileIdLow = 0; barDM.GroupNumber = 0; barDM.GroupTotal = 0; barDM.XModule = 0; BarcodeWriteQr barQR = new BarcodeWriteQr(); WriteOptions options = new WriteOptions(); WriteBarcode2DDataMatrix dataMatrix = new WriteBarcode2DDataMatrix(); dataMatrix.Type = WriteBarcode2DDataMatrixType.DatamatrixDefault; dataMatrix.Data = matrixData; options.Add(dataMatrix); WriteBarcode1dStandard standard = new WriteBarcode1dStandard(); standard.Type = WriteBarcodeStandardFlags.Ean13; standard.Data = standardData; options.Add(standard); WriteBarcode1dPost post = new WriteBarcode1dPost(); post.Type = WriteBarcode1dPostType.Planet; post.Data = postData; options.Add(post); WriteBarcode1dPatch patch = new WriteBarcode1dPatch(); patch.Type = WriteBarcode1dPatchType.Patchcode; patch.Data = patchData; options.Add(patch); WriteBarcode1dStacked stacked = new WriteBarcode1dStacked(); stacked.Type = WriteBarcode1dStackedType.Rss14Stacked; stacked.Data = stackedData; options.Add(stacked); WriteBarcode2DPdf417 pdf417 = new WriteBarcode2DPdf417(); pdf417.Type = WriteBarcode2DPdf417Type.Pdf417; pdf417.Data = pdf417Data; options.Add(pdf417); WriteBarcode2DMicroPdf417 microPdf417 = new WriteBarcode2DMicroPdf417(); microPdf417.Type = WriteBarcode2DMicroPdf417Type.MicroPdf417; microPdf417.Data = microPdf417Data; options.Add(microPdf417); WriteBarcode2DQr qr = new WriteBarcode2DQr(); qr.Type = WriteBarcode2DQrType.Default; qr.Data = qrData; options.Add(qr); WriteRequest request = new WriteRequest(); request.Code1d = bar1d; request.CodeColor = barColor; request.CodeDatamatrix = barDM; request.CodePdf = barPDF; request.CodeQr = barQR; request.ConvertOptions = convertOptions; request.TypeFlags = BarcodeMajorTypeFlags.BarcodesDatamatrixWrite; request.Unit = BarcodeUnit.ScanlinesPerPixels; request.WriteFlags = BarcodeWriteFlags.UseColors | BarcodeWriteFlags.Transparent | BarcodeWriteFlags.InitializationReader | BarcodeWriteFlags.DisableCompression; request.WriteOptions = options; WriteResponse response = client.Write(request); if (response.Destination != null) { if (response.Destination is RawBinaryData) { File.WriteAllBytes(Path.Combine(LEAD_VARS.ImagesDir,"Write_Barcode.Pdf"), (response.Destination as RawBinaryData).Data); } } client.Close(); } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; } |
The following table contains information for writing Data Matrix barcodes:
Data Matrix type |
Maximum Numeric Length |
Maximum Alphanumeric Length |
Maximum Binary Length |
Maximum Correctable Error / Erasure |
10 x 10 |
6 |
3 |
1 |
2 |
12 x 12 |
10 |
6 |
3 |
3 |
14 x 14 |
16 |
10 |
6 |
5/7 |
16 x 16 |
24 |
16 |
10 |
6/9 |
18 x 18 |
36 |
25 |
16 |
7/11 |
20 x 20 |
44 |
31 |
20 |
9/15 |
22 x 22 |
60 |
43 |
28 |
10/17 |
24 x 24 |
72 |
52 |
34 |
12/21 |
26 x 26 |
88 |
64 |
42 |
14/25 |
32 x 32 |
124 |
91 |
60 |
18/33 |
36 x 36 |
172 |
127 |
84 |
21/39 |
40 x 40 |
228 |
169 |
112 |
24/45 |
44 x 44 |
288 |
214 |
142 |
28/53 |
48 x 48 |
348 |
259 |
172 |
34/65 |
52 x 52 |
408 |
304 |
202 |
42/78 |
64 x 64 |
560 |
418 |
278 |
56/106 |
72 x 72 |
736 |
550 |
366 |
72/132 |
80 x 80 |
912 |
682 |
454 |
96/180 |
88 x 88 |
1152 |
862 |
574 |
112/212 |
96 x 96 |
1392 |
1042 |
694 |
136/260 |
104 x 104 |
1632 |
1222 |
814 |
168/318 |
120 x 120 |
2100 |
1573 |
1048 |
204/390 |
132 x 132 |
2608 |
1954 |
1302 |
248/472 |
144 x 144 |
3116 |
2335 |
1556 |
310/590 |
8 x 18 |
10 |
6 |
3 |
3 |
8 x 32 |
20 |
13 |
8 |
5 |
12 x 26 |
32 |
22 |
14 |
7/11 |
12 x 36 |
44 |
31 |
20 |
9/15 |
16 x 36 |
64 |
46 |
30 |
12/21 |
16 x 48 |
98 |
72 |
47 |
14/25 |
System.Object
Leadtools.Services.Barcode.DataContracts.BarcodeWriteDatamatrix
Target Platforms: Microsoft .NET Framework 3.0, Windows 2000, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7