Пример #1
0
        public Image Paint()
        {
            top = settings.TopMargin;

            Graphics g = Graphics.FromImage(new Bitmap(1, 1));

            int width  = (3 + 6 * 7 + 5 + 6 * 7 + 3) * settings.BarWidth + settings.LeftMargin + settings.RightMargin + (int)g.MeasureString(code[0].ToString(), settings.Font).Width;
            int height = settings.BarCodeHeight;

            if (title != null)
            {
                int h = (int)g.MeasureString(title, settings.Font).Height;
                height += h;
                top    += h;
            }

            Bitmap bmp = new Bitmap(width, height, PixelFormat.Format32bppArgb);

            g = Graphics.FromImage(bmp);

            int left = settings.LeftMargin;

            //LEFT GUARD
            left = DrawLeftGuard(settings, g, code[0].ToString(), left);

            //LEFT GROUP
            int    first = int.Parse(code[0].ToString());
            Parity par   = parity[first];
            string digit = code[1].ToString();

            left = Draw(settings, g, left, digit, codes[int.Parse(digit)].LhOdd); //Odd

            for (int i = 2; i <= 6; i++)
            {
                digit = code[i].ToString();
                Pattern p = codes[int.Parse(digit)];
                left = Draw(settings, g, left, digit, (par.IsOdd(i - 2) ? p.LhOdd : p.LhEven));
            }

            //MIDDLE GUARD
            left = DrawCenterGuard(settings, g, left);

            //RIGHT GROUP
            for (int i = 7; i <= 12; i++)
            {
                digit = code[i].ToString();
                Pattern p = codes[int.Parse(digit)];
                left = Draw(settings, g, left, digit, p.Rh);
            }

            //RIGHT GUARD
            left = DrawRightGuard(settings, g, left);

            return(bmp);
        }
Пример #2
0
        private static void Main(string[] args)
        {
            Console.WriteLine("F0.Common");
            Console.WriteLine();

            int integer = GetInteger(args);

            Console.WriteLine($"{nameof(integer)} {integer} is {(Parity.IsEven(integer) ? "" : "not ")}even.");
            Console.WriteLine($"{nameof(integer)} {integer} is {(Parity.IsOdd(integer) ? "" : "not ")}odd.");
            Console.WriteLine();

            const int min = -240;
            const int max = +240;

            Console.WriteLine($"{nameof(integer)} {integer} clamped to the inclusive range of {min} and {max}:");
            Console.WriteLine(Comparable.Clamp(integer, min, max));
        }
Пример #3
0
        public override void Render(ref PdfSharp.Drawing.XGraphics gfx, double _offsetLeft, double _offsetTop, double scaleX, double scaleY)
        {
            PreRender(ref gfx, offsetLeft, offsetTop, scaleX, scaleY);
            if (code != null && code.Length == 13)
            {
                double left = 0.0;
                offsetTop  = _offsetTop;
                offsetLeft = _offsetLeft;
                Width     *= scaleX;
                Height    *= scaleY;
                font       = new XFont(new Font("World", (float)Util.MillimeterToPoint((float)Math.Min(Height * 0.2, Width * 0.1) * 0.8), GraphicsUnit.World), new XPdfFontOptions(false, false));
                gfx.DrawString(code[0].ToString(), font, Brushes.Black, new PointF((float)(Util.MillimeterToPoint(offsetLeft + Left + left)), (float)(Util.MillimeterToPoint(offsetTop + Top + (Height * 0.95)))));
                left    += 4;
                BarWidth = (Width - left) / (3 + 6 * 7 + 5 + 6 * 7 + 3);
                left     = DrawLeftGuard(ref gfx, code[0].ToString(), left);

                int    first = int.Parse(code[0].ToString());
                Parity par   = EAN13.Parity[first];
                string digit = code[1].ToString();
                left = Draw(ref gfx, left, digit, EAN13.Codes[int.Parse(digit)].LhOdd);
                for (int i = 2; i <= 6; i++)
                {
                    digit = code[i].ToString();
                    Pattern p = EAN13.Codes[int.Parse(digit)];
                    left = Draw(ref gfx, left, digit, par.IsOdd(i - 2) ? p.LhOdd : p.LhEven);
                }
                left = DrawCenterGuard(ref gfx, left);
                for (int i = 7; i <= 12; i++)
                {
                    digit = code[i].ToString();
                    Pattern p = EAN13.Codes[int.Parse(digit)];
                    left = Draw(ref gfx, left, digit, p.Rh);
                }

                left    = DrawRightGuard(ref gfx, left);
                Width  /= scaleX;
                Height /= scaleY;
            }
            base.Render(ref gfx, offsetLeft, offsetTop, scaleX, scaleY);
        }
Пример #4
0
 public void IfAnIntegerIsEvenlyDivisibleByTwo_ItIsEven_LeavingNoRemainder(int integer)
 {
     Assert.True(Parity.IsEven(integer));
     Assert.False(Parity.IsOdd(integer));
 }
Пример #5
0
 public void Odd_16bitUnsignedInteger(ushort integer)
 {
     Assert.True(Parity.IsOdd(integer));
     Assert.False(Parity.IsEven(integer));
 }
Пример #6
0
 public void Even_16bitSignedInteger(short integer)
 {
     Assert.True(Parity.IsEven(integer));
     Assert.False(Parity.IsOdd(integer));
 }
Пример #7
0
 public void Odd_8bitUnsignedInteger(byte integer)
 {
     Assert.True(Parity.IsOdd(integer));
     Assert.False(Parity.IsEven(integer));
 }
Пример #8
0
 public void Odd_NativeSizedUnsignedInteger(nuint integer)
 {
     Assert.True(Parity.IsOdd(integer));
     Assert.False(Parity.IsEven(integer));
 }
Пример #9
0
 public void Even_NativeSizedSignedInteger(nint integer)
 {
     Assert.True(Parity.IsEven(integer));
     Assert.False(Parity.IsOdd(integer));
 }
Пример #10
0
 public void Odd_64bitUnsignedInteger(ulong integer)
 {
     Assert.True(Parity.IsOdd(integer));
     Assert.False(Parity.IsEven(integer));
 }
Пример #11
0
 public void Even_64bitSignedInteger(long integer)
 {
     Assert.True(Parity.IsEven(integer));
     Assert.False(Parity.IsOdd(integer));
 }
Пример #12
0
 public void Even_8bitSignedInteger(sbyte integer)
 {
     Assert.True(Parity.IsEven(integer));
     Assert.False(Parity.IsOdd(integer));
 }
Пример #13
0
 public void Even_32bitUnsignedInteger(uint integer)
 {
     Assert.True(Parity.IsEven(integer));
     Assert.False(Parity.IsOdd(integer));
 }