Leadtools.Services.Barcode.DataContracts Namespace : BarcodeWriteDatamatrix Class |
[DataContractAttribute(Namespace="http://Leadtools.Services.Barcode.DataContracts/2009/01", Name="BarcodeWriteDatamatrix")] public class BarcodeWriteDatamatrix
'Declaration <DataContractAttribute(Namespace="http://Leadtools.Services.Barcode.DataContracts/2009/01", Name="BarcodeWriteDatamatrix")> Public Class BarcodeWriteDatamatrix
'Usage Dim instance As BarcodeWriteDatamatrix
public sealed class BarcodeWriteDatamatrix
function Leadtools.Services.Barcode.DataContracts.BarcodeWriteDatamatrix()
[DataContractAttribute(Namespace="http://Leadtools.Services.Barcode.DataContracts/2009/01", Name="BarcodeWriteDatamatrix")] public ref class BarcodeWriteDatamatrix
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 |
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
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"; }
Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2