diff --git a/PDFsharp/code/PdfSharp/PdfSharp.Drawing.BarCodes/Code128.cs b/PDFsharp/code/PdfSharp/PdfSharp.Drawing.BarCodes/Code128.cs
index 18c3ad6..e47576f 100644
--- a/PDFsharp/code/PdfSharp/PdfSharp.Drawing.BarCodes/Code128.cs
+++ b/PDFsharp/code/PdfSharp/PdfSharp.Drawing.BarCodes/Code128.cs
@@ -42,7 +42,117 @@ private Code128Type Code128Code
///
/// A static place holder for the patterns to draw the code 128 barcode
///
- public static Dictionary Patterns;
+ public static readonly Dictionary Patterns = new Dictionary
+ {
+ { 0, new Byte[] { 2, 1, 2, 2, 2, 2 } },
+ { 1, new Byte[] { 2, 2, 2, 1, 2, 2 } },
+ { 2, new Byte[] { 2, 2, 2, 2, 2, 1 } },
+ { 3, new Byte[] { 1, 2, 1, 2, 2, 3 } },
+ { 4, new Byte[] { 1, 2, 1, 3, 2, 2 } },
+ { 5, new Byte[] { 1, 3, 1, 2, 2, 2 } },
+ { 6, new Byte[] { 1, 2, 2, 2, 1, 3 } },
+ { 7, new Byte[] { 1, 2, 2, 3, 1, 2 } },
+ { 8, new Byte[] { 1, 3, 2, 2, 1, 2 } },
+ { 9, new Byte[] { 2, 2, 1, 2, 1, 3 } },
+ { 10, new Byte[] { 2, 2, 1, 3, 1, 2 } },
+ { 11, new Byte[] { 2, 3, 1, 2, 1, 2 } },
+ { 12, new Byte[] { 1, 1, 2, 2, 3, 2 } },
+ { 13, new Byte[] { 1, 2, 2, 1, 3, 2 } },
+ { 14, new Byte[] { 1, 2, 2, 2, 3, 1 } },
+ { 15, new Byte[] { 1, 1, 3, 2, 2, 2 } },
+ { 16, new Byte[] { 1, 2, 3, 1, 2, 2 } },
+ { 17, new Byte[] { 1, 2, 3, 2, 2, 1 } },
+ { 18, new Byte[] { 2, 2, 3, 2, 1, 1 } },
+ { 19, new Byte[] { 2, 2, 1, 1, 3, 2 } },
+ { 20, new Byte[] { 2, 2, 1, 2, 3, 1 } },
+ { 21, new Byte[] { 2, 1, 3, 2, 1, 2 } },
+ { 22, new Byte[] { 2, 2, 3, 1, 1, 2 } },
+ { 23, new Byte[] { 3, 1, 2, 1, 3, 1 } },
+ { 24, new Byte[] { 3, 1, 1, 2, 2, 2 } },
+ { 25, new Byte[] { 3, 2, 1, 1, 2, 2 } },
+ { 26, new Byte[] { 3, 2, 1, 2, 2, 1 } },
+ { 27, new Byte[] { 3, 1, 2, 2, 1, 2 } },
+ { 28, new Byte[] { 3, 2, 2, 1, 1, 2 } },
+ { 29, new Byte[] { 3, 2, 2, 2, 1, 1 } },
+ { 30, new Byte[] { 2, 1, 2, 1, 2, 3 } },
+ { 31, new Byte[] { 2, 1, 2, 3, 2, 1 } },
+ { 32, new Byte[] { 2, 3, 2, 1, 2, 1 } },
+ { 33, new Byte[] { 1, 1, 1, 3, 2, 3 } },
+ { 34, new Byte[] { 1, 3, 1, 1, 2, 3 } },
+ { 35, new Byte[] { 1, 3, 1, 3, 2, 1 } },
+ { 36, new Byte[] { 1, 1, 2, 3, 1, 3 } },
+ { 37, new Byte[] { 1, 3, 2, 1, 1, 3 } },
+ { 38, new Byte[] { 1, 3, 2, 3, 1, 1 } },
+ { 39, new Byte[] { 2, 1, 1, 3, 1, 3 } },
+ { 40, new Byte[] { 2, 3, 1, 1, 1, 3 } },
+ { 41, new Byte[] { 2, 3, 1, 3, 1, 1 } },
+ { 42, new Byte[] { 1, 1, 2, 1, 3, 3 } },
+ { 43, new Byte[] { 1, 1, 2, 3, 3, 1 } },
+ { 44, new Byte[] { 1, 3, 2, 1, 3, 1 } },
+ { 45, new Byte[] { 1, 1, 3, 1, 2, 3 } },
+ { 46, new Byte[] { 1, 1, 3, 3, 2, 1 } },
+ { 47, new Byte[] { 1, 3, 3, 1, 2, 1 } },
+ { 48, new Byte[] { 3, 1, 3, 1, 2, 1 } },
+ { 49, new Byte[] { 2, 1, 1, 3, 3, 1 } },
+ { 50, new Byte[] { 2, 3, 1, 1, 3, 1 } },
+ { 51, new Byte[] { 2, 1, 3, 1, 1, 3 } },
+ { 52, new Byte[] { 2, 1, 3, 3, 1, 1 } },
+ { 53, new Byte[] { 2, 1, 3, 1, 3, 1 } },
+ { 54, new Byte[] { 3, 1, 1, 1, 2, 3 } },
+ { 55, new Byte[] { 3, 1, 1, 3, 2, 1 } },
+ { 56, new Byte[] { 3, 3, 1, 1, 2, 1 } },
+ { 57, new Byte[] { 3, 1, 2, 1, 1, 3 } },
+ { 58, new Byte[] { 3, 1, 2, 3, 1, 1 } },
+ { 59, new Byte[] { 3, 3, 2, 1, 1, 1 } },
+ { 60, new Byte[] { 3, 1, 4, 1, 1, 1 } },
+ { 61, new Byte[] { 2, 2, 1, 4, 1, 1 } },
+ { 62, new Byte[] { 4, 3, 1, 1, 1, 1 } },
+ { 63, new Byte[] { 1, 1, 1, 2, 2, 4 } },
+ { 64, new Byte[] { 1, 1, 1, 4, 2, 2 } },
+ { 65, new Byte[] { 1, 2, 1, 1, 2, 4 } },
+ { 66, new Byte[] { 1, 2, 1, 4, 2, 1 } },
+ { 67, new Byte[] { 1, 4, 1, 1, 2, 2 } },
+ { 68, new Byte[] { 1, 4, 1, 2, 2, 1 } },
+ { 69, new Byte[] { 1, 1, 2, 2, 1, 4 } },
+ { 70, new Byte[] { 1, 1, 2, 4, 1, 2 } },
+ { 71, new Byte[] { 1, 2, 2, 1, 1, 4 } },
+ { 72, new Byte[] { 1, 2, 2, 4, 1, 1 } },
+ { 73, new Byte[] { 1, 4, 2, 1, 1, 2 } },
+ { 74, new Byte[] { 1, 4, 2, 2, 1, 1 } },
+ { 75, new Byte[] { 2, 4, 1, 2, 1, 1 } },
+ { 76, new Byte[] { 2, 2, 1, 1, 1, 4 } },
+ { 77, new Byte[] { 4, 1, 3, 1, 1, 1 } },
+ { 78, new Byte[] { 2, 4, 1, 1, 1, 2 } },
+ { 79, new Byte[] { 1, 3, 4, 1, 1, 1 } },
+ { 80, new Byte[] { 1, 1, 1, 2, 4, 2 } },
+ { 81, new Byte[] { 1, 2, 1, 1, 4, 2 } },
+ { 82, new Byte[] { 1, 2, 1, 2, 4, 1 } },
+ { 83, new Byte[] { 1, 1, 4, 2, 1, 2 } },
+ { 84, new Byte[] { 1, 2, 4, 1, 1, 2 } },
+ { 85, new Byte[] { 1, 2, 4, 2, 1, 1 } },
+ { 86, new Byte[] { 4, 1, 1, 2, 1, 2 } },
+ { 87, new Byte[] { 4, 2, 1, 1, 1, 2 } },
+ { 88, new Byte[] { 4, 2, 1, 2, 1, 1 } },
+ { 89, new Byte[] { 2, 1, 2, 1, 4, 1 } },
+ { 90, new Byte[] { 2, 1, 4, 1, 2, 1 } },
+ { 91, new Byte[] { 4, 1, 2, 1, 2, 1 } },
+ { 92, new Byte[] { 1, 1, 1, 1, 4, 3 } },
+ { 93, new Byte[] { 1, 1, 1, 3, 4, 1 } },
+ { 94, new Byte[] { 1, 3, 1, 1, 4, 1 } },
+ { 95, new Byte[] { 1, 1, 4, 1, 1, 3 } },
+ { 96, new Byte[] { 1, 1, 4, 3, 1, 1 } },
+ { 97, new Byte[] { 4, 1, 1, 1, 1, 3 } },
+ { 98, new Byte[] { 4, 1, 1, 3, 1, 1 } },
+ { 99, new Byte[] { 1, 1, 3, 1, 4, 1 } },
+ { 100, new Byte[] { 1, 1, 4, 1, 3, 1 } },
+ { 101, new Byte[] { 3, 1, 1, 1, 4, 1 } },
+ { 102, new Byte[] { 4, 1, 1, 1, 3, 1 } },
+ { 103, new Byte[] { 2, 1, 1, 4, 1, 2 } },
+ { 104, new Byte[] { 2, 1, 1, 2, 1, 4 } },
+ { 105, new Byte[] { 2, 1, 1, 2, 3, 2 } },
+ { 106, new Byte[] { 2, 3, 3, 1, 1, 1, 2 } }
+ };
+
#endregion
#endregion
#region Methods
@@ -318,117 +428,6 @@ protected override void CheckCode(String text)
public Code128()
: base("", XSize.Empty, CodeDirection.LeftToRight)
{
- if (Patterns == null)
- {
- Patterns = new Dictionary();
- Patterns.Add(0, new Byte[] { 2, 1, 2, 2, 2, 2 });
- Patterns.Add(1, new Byte[] { 2, 2, 2, 1, 2, 2 });
- Patterns.Add(2, new Byte[] { 2, 2, 2, 2, 2, 1 });
- Patterns.Add(3, new Byte[] { 1, 2, 1, 2, 2, 3 });
- Patterns.Add(4, new Byte[] { 1, 2, 1, 3, 2, 2 });
- Patterns.Add(5, new Byte[] { 1, 3, 1, 2, 2, 2 });
- Patterns.Add(6, new Byte[] { 1, 2, 2, 2, 1, 3 });
- Patterns.Add(7, new Byte[] { 1, 2, 2, 3, 1, 2 });
- Patterns.Add(8, new Byte[] { 1, 3, 2, 2, 1, 2 });
- Patterns.Add(9, new Byte[] { 2, 2, 1, 2, 1, 3 });
- Patterns.Add(10, new Byte[] { 2, 2, 1, 3, 1, 2 });
- Patterns.Add(11, new Byte[] { 2, 3, 1, 2, 1, 2 });
- Patterns.Add(12, new Byte[] { 1, 1, 2, 2, 3, 2 });
- Patterns.Add(13, new Byte[] { 1, 2, 2, 1, 3, 2 });
- Patterns.Add(14, new Byte[] { 1, 2, 2, 2, 3, 1 });
- Patterns.Add(15, new Byte[] { 1, 1, 3, 2, 2, 2 });
- Patterns.Add(16, new Byte[] { 1, 2, 3, 1, 2, 2 });
- Patterns.Add(17, new Byte[] { 1, 2, 3, 2, 2, 1 });
- Patterns.Add(18, new Byte[] { 2, 2, 3, 2, 1, 1 });
- Patterns.Add(19, new Byte[] { 2, 2, 1, 1, 3, 2 });
- Patterns.Add(20, new Byte[] { 2, 2, 1, 2, 3, 1 });
- Patterns.Add(21, new Byte[] { 2, 1, 3, 2, 1, 2 });
- Patterns.Add(22, new Byte[] { 2, 2, 3, 1, 1, 2 });
- Patterns.Add(23, new Byte[] { 3, 1, 2, 1, 3, 1 });
- Patterns.Add(24, new Byte[] { 3, 1, 1, 2, 2, 2 });
- Patterns.Add(25, new Byte[] { 3, 2, 1, 1, 2, 2 });
- Patterns.Add(26, new Byte[] { 3, 2, 1, 2, 2, 1 });
- Patterns.Add(27, new Byte[] { 3, 1, 2, 2, 1, 2 });
- Patterns.Add(28, new Byte[] { 3, 2, 2, 1, 1, 2 });
- Patterns.Add(29, new Byte[] { 3, 2, 2, 2, 1, 1 });
- Patterns.Add(30, new Byte[] { 2, 1, 2, 1, 2, 3 });
- Patterns.Add(31, new Byte[] { 2, 1, 2, 3, 2, 1 });
- Patterns.Add(32, new Byte[] { 2, 3, 2, 1, 2, 1 });
- Patterns.Add(33, new Byte[] { 1, 1, 1, 3, 2, 3 });
- Patterns.Add(34, new Byte[] { 1, 3, 1, 1, 2, 3 });
- Patterns.Add(35, new Byte[] { 1, 3, 1, 3, 2, 1 });
- Patterns.Add(36, new Byte[] { 1, 1, 2, 3, 1, 3 });
- Patterns.Add(37, new Byte[] { 1, 3, 2, 1, 1, 3 });
- Patterns.Add(38, new Byte[] { 1, 3, 2, 3, 1, 1 });
- Patterns.Add(39, new Byte[] { 2, 1, 1, 3, 1, 3 });
- Patterns.Add(40, new Byte[] { 2, 3, 1, 1, 1, 3 });
- Patterns.Add(41, new Byte[] { 2, 3, 1, 3, 1, 1 });
- Patterns.Add(42, new Byte[] { 1, 1, 2, 1, 3, 3 });
- Patterns.Add(43, new Byte[] { 1, 1, 2, 3, 3, 1 });
- Patterns.Add(44, new Byte[] { 1, 3, 2, 1, 3, 1 });
- Patterns.Add(45, new Byte[] { 1, 1, 3, 1, 2, 3 });
- Patterns.Add(46, new Byte[] { 1, 1, 3, 3, 2, 1 });
- Patterns.Add(47, new Byte[] { 1, 3, 3, 1, 2, 1 });
- Patterns.Add(48, new Byte[] { 3, 1, 3, 1, 2, 1 });
- Patterns.Add(49, new Byte[] { 2, 1, 1, 3, 3, 1 });
- Patterns.Add(50, new Byte[] { 2, 3, 1, 1, 3, 1 });
- Patterns.Add(51, new Byte[] { 2, 1, 3, 1, 1, 3 });
- Patterns.Add(52, new Byte[] { 2, 1, 3, 3, 1, 1 });
- Patterns.Add(53, new Byte[] { 2, 1, 3, 1, 3, 1 });
- Patterns.Add(54, new Byte[] { 3, 1, 1, 1, 2, 3 });
- Patterns.Add(55, new Byte[] { 3, 1, 1, 3, 2, 1 });
- Patterns.Add(56, new Byte[] { 3, 3, 1, 1, 2, 1 });
- Patterns.Add(57, new Byte[] { 3, 1, 2, 1, 1, 3 });
- Patterns.Add(58, new Byte[] { 3, 1, 2, 3, 1, 1 });
- Patterns.Add(59, new Byte[] { 3, 3, 2, 1, 1, 1 });
- Patterns.Add(60, new Byte[] { 3, 1, 4, 1, 1, 1 });
- Patterns.Add(61, new Byte[] { 2, 2, 1, 4, 1, 1 });
- Patterns.Add(62, new Byte[] { 4, 3, 1, 1, 1, 1 });
- Patterns.Add(63, new Byte[] { 1, 1, 1, 2, 2, 4 });
- Patterns.Add(64, new Byte[] { 1, 1, 1, 4, 2, 2 });
- Patterns.Add(65, new Byte[] { 1, 2, 1, 1, 2, 4 });
- Patterns.Add(66, new Byte[] { 1, 2, 1, 4, 2, 1 });
- Patterns.Add(67, new Byte[] { 1, 4, 1, 1, 2, 2 });
- Patterns.Add(68, new Byte[] { 1, 4, 1, 2, 2, 1 });
- Patterns.Add(69, new Byte[] { 1, 1, 2, 2, 1, 4 });
- Patterns.Add(70, new Byte[] { 1, 1, 2, 4, 1, 2 });
- Patterns.Add(71, new Byte[] { 1, 2, 2, 1, 1, 4 });
- Patterns.Add(72, new Byte[] { 1, 2, 2, 4, 1, 1 });
- Patterns.Add(73, new Byte[] { 1, 4, 2, 1, 1, 2 });
- Patterns.Add(74, new Byte[] { 1, 4, 2, 2, 1, 1 });
- Patterns.Add(75, new Byte[] { 2, 4, 1, 2, 1, 1 });
- Patterns.Add(76, new Byte[] { 2, 2, 1, 1, 1, 4 });
- Patterns.Add(77, new Byte[] { 4, 1, 3, 1, 1, 1 });
- Patterns.Add(78, new Byte[] { 2, 4, 1, 1, 1, 2 });
- Patterns.Add(79, new Byte[] { 1, 3, 4, 1, 1, 1 });
- Patterns.Add(80, new Byte[] { 1, 1, 1, 2, 4, 2 });
- Patterns.Add(81, new Byte[] { 1, 2, 1, 1, 4, 2 });
- Patterns.Add(82, new Byte[] { 1, 2, 1, 2, 4, 1 });
- Patterns.Add(83, new Byte[] { 1, 1, 4, 2, 1, 2 });
- Patterns.Add(84, new Byte[] { 1, 2, 4, 1, 1, 2 });
- Patterns.Add(85, new Byte[] { 1, 2, 4, 2, 1, 1 });
- Patterns.Add(86, new Byte[] { 4, 1, 1, 2, 1, 2 });
- Patterns.Add(87, new Byte[] { 4, 2, 1, 1, 1, 2 });
- Patterns.Add(88, new Byte[] { 4, 2, 1, 2, 1, 1 });
- Patterns.Add(89, new Byte[] { 2, 1, 2, 1, 4, 1 });
- Patterns.Add(90, new Byte[] { 2, 1, 4, 1, 2, 1 });
- Patterns.Add(91, new Byte[] { 4, 1, 2, 1, 2, 1 });
- Patterns.Add(92, new Byte[] { 1, 1, 1, 1, 4, 3 });
- Patterns.Add(93, new Byte[] { 1, 1, 1, 3, 4, 1 });
- Patterns.Add(94, new Byte[] { 1, 3, 1, 1, 4, 1 });
- Patterns.Add(95, new Byte[] { 1, 1, 4, 1, 1, 3 });
- Patterns.Add(96, new Byte[] { 1, 1, 4, 3, 1, 1 });
- Patterns.Add(97, new Byte[] { 4, 1, 1, 1, 1, 3 });
- Patterns.Add(98, new Byte[] { 4, 1, 1, 3, 1, 1 });
- Patterns.Add(99, new Byte[] { 1, 1, 3, 1, 4, 1 });
- Patterns.Add(100, new Byte[] { 1, 1, 4, 1, 3, 1 });
- Patterns.Add(101, new Byte[] { 3, 1, 1, 1, 4, 1 });
- Patterns.Add(102, new Byte[] { 4, 1, 1, 1, 3, 1 });
- Patterns.Add(103, new Byte[] { 2, 1, 1, 4, 1, 2 });
- Patterns.Add(104, new Byte[] { 2, 1, 1, 2, 1, 4 });
- Patterns.Add(105, new Byte[] { 2, 1, 1, 2, 3, 2 });
- Patterns.Add(106, new Byte[] { 2, 3, 3, 1, 1, 1, 2 });
- }
this.code128Code = Code128Type.B;
}
///