コード例 #1
0
        public byte[] GetBytes()
        {
            var builder = new PrintableBuilder();

            builder
            .SetCenterJustification()
            .AddTextLine(CompanyName)
            .SetFontB()
            .AddTextLine($"Doc. {CompanyDocument}")
            .Feed()
            .Feed()
            .SetJustification();

            foreach (var product in Products)
            {
                builder
                .SetFont()
                .AddTextLine($"{product.Quantity} x {product.Name}")
                .SetFontB()
                .AddTextLine($"${product.PricePerUnit.ToString(CultureInfo.InvariantCulture)} x " +
                             $"{product.Quantity} = ${product.TotalAmount.ToString(CultureInfo.InvariantCulture)}")
                .Feed();
            }

            builder
            .SetRightJustification()
            .SetDoubleFont()
            .AddTextLine($"Total: ${Products.Sum(e => e.TotalAmount).ToString(CultureInfo.InvariantCulture)}")
            .Reset()
            .Feed()
            .AddBarcode(CompanyName);

            return(builder.ToArray());
        }
コード例 #2
0
        public static PrintableBuilder SetFont(this PrintableBuilder builder, FontMode fontMode = FontMode.FontA)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            return(builder.Add(new SetFont(fontMode)));
        }
コード例 #3
0
        public static PrintableBuilder Feed(this PrintableBuilder builder)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            return(builder.Add(new Feed()));
        }
コード例 #4
0
        public static PrintableBuilder SetCodePage(this PrintableBuilder builder, byte codePage)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            return(builder.Add(new SetCodePage(codePage)));
        }
コード例 #5
0
        public static PrintableBuilder Cut(this PrintableBuilder builder, CutType type = CutType.Partial)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            return(builder.Add(new Cut(type)));
        }
コード例 #6
0
        public static PrintableBuilder SetJustification(this PrintableBuilder builder,
                                                        JustificationType justificationType = JustificationType.Left)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            return(builder.Add(new SetJustification(justificationType)));
        }
コード例 #7
0
        public static PrintableBuilder AddTextLine(this PrintableBuilder builder, string content = "",
                                                   CodePage codePage = CodePage.Default, Encoding encoding = null, bool feed = true)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            return(builder.Add(new TextLine(content, codePage, encoding, feed)));
        }
コード例 #8
0
        public static PrintableBuilder AddBarcode(this PrintableBuilder builder, string content = "", int height = 32,
                                                  BarcodeType barcodeType = BarcodeType.Code128)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            return(builder.Add(new Barcode(content, height, barcodeType)));
        }
コード例 #9
0
        public byte[] GetBytes()
        {
            var builder = new PrintableBuilder();

            var contentBytes = _encoding.GetBytes(_content);

            builder
            .Add(new SetCodePage(_codePage))
            .Add(contentBytes);

            if (_feed)
            {
                builder.Add(new Feed());
            }

            builder.Add(new SetCodePage(CodePage.Default));

            return(builder.ToArray());
        }
コード例 #10
0
 public static PrintableBuilder SetDoubleFont(this PrintableBuilder builder) =>
 builder.SetFont(FontMode.DoubleWidth | FontMode.DoubleHeight);
コード例 #11
0
 public static PrintableBuilder SetEmphasizedFont(this PrintableBuilder builder) =>
 builder.SetFont(FontMode.Emphasized);
コード例 #12
0
 public static PrintableBuilder SetFontB(this PrintableBuilder builder) => builder.SetFont(FontMode.FontB);
コード例 #13
0
 public static PrintableBuilder SetFontA(this PrintableBuilder builder) => builder.SetFont();
コード例 #14
0
 public static PrintableBuilder SetRightJustification(this PrintableBuilder builder) =>
 builder.SetJustification(JustificationType.Right);
コード例 #15
0
 public static PrintableBuilder SetCenterJustification(this PrintableBuilder builder) =>
 builder.SetJustification(JustificationType.Center);
コード例 #16
0
 public static PrintableBuilder SetLeftJustification(this PrintableBuilder builder) =>
 builder.SetJustification();