-
Notifications
You must be signed in to change notification settings - Fork 1
/
Barcode.cs
108 lines (99 loc) · 3.62 KB
/
Barcode.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using DotNetNuke.Services.GeneratedImage;
using ZXing;
using ZXing.Common;
namespace Bitboxx.Services.GeneratedImage
{
public class Barcode : ImageTransform
{
/// <summary>
/// Sets the barcode type
/// (upca,ean8,ean13,code39,code128,itf,codabar,plessey,msi,qrcode,pdf417,aztec,datamatrix)
/// </summary>
public string Type { get; set; }
/// <summary>
/// Sets the barcode content
/// (upca,ean8,ean13,code39,code128,itf,codabar,plessey,msi,qrcode,pdf417,aztec,datamatrix)
/// </summary>
public string Content { get; set; }
/// <summary>
/// Sets the Width of the generated barcode
/// </summary>
public int Width { get; set; }
/// <summary>
/// Sets the Height of the generated barcode
/// </summary>
public int Height { get; set; }
/// <summary>
/// Sets the Border Width (not pixels, depends on barcode type)
/// </summary>
public int Border { get; set; }
public override string UniqueString
{
get { return base.UniqueString + this.Type + "-" + this.Width.ToString() + "-" + this.Height.ToString() + this.Content + "-" + this.Border.ToString(); }
}
public Barcode()
{
InterpolationMode = InterpolationMode.HighQualityBicubic;
SmoothingMode = SmoothingMode.Default;
PixelOffsetMode = PixelOffsetMode.Default;
CompositingQuality = CompositingQuality.HighSpeed;
}
public override Image ProcessImage(Image image)
{
BarcodeWriter barcodeWriter = new BarcodeWriter();
switch (Type)
{
case "upca":
barcodeWriter.Format = BarcodeFormat.UPC_A;
break;
case "ean8":
barcodeWriter.Format = BarcodeFormat.EAN_8;
break;
case "ean13":
barcodeWriter.Format = BarcodeFormat.EAN_13;
break;
case "code39":
barcodeWriter.Format = BarcodeFormat.CODE_39;
break;
case "code128":
barcodeWriter.Format = BarcodeFormat.CODE_128;
break;
case "itf":
barcodeWriter.Format = BarcodeFormat.ITF;
break;
case "codabar":
barcodeWriter.Format = BarcodeFormat.CODABAR;
break;
case "plessey":
barcodeWriter.Format = BarcodeFormat.PLESSEY;
break;
case "msi":
barcodeWriter.Format = BarcodeFormat.MSI;
break;
case "qrcode":
barcodeWriter.Format = BarcodeFormat.QR_CODE;
break;
case "pdf417":
barcodeWriter.Format = BarcodeFormat.PDF_417;
break;
case "aztec":
barcodeWriter.Format = BarcodeFormat.AZTEC;
break;
case "datamatrix":
barcodeWriter.Format = BarcodeFormat.DATA_MATRIX;
break;
}
barcodeWriter.Options = new EncodingOptions
{
Height = Height,
Width = Width,
Margin = Border
};
Bitmap bitmap = barcodeWriter.Write(Content);
return (Image)bitmap;
}
}
}