private List <Product> CollectProducts(bool separateByItem) { var productData = new List <Product>(); foreach (var inputRow in InputRows) { if (inputRow.ProductName.Text != "" && inputRow.Sku.Text != "" && inputRow.Size.Text != "" && inputRow.Quantity.Value > 0) { var product = new Product(); product.Sku = inputRow.Sku.Text; product.ProductName = GetProductName(inputRow.ProductName.Text); product.Size = inputRow.Size.Text; product.Price = inputRow.Price; var coder = new Code128(); product.Code128Text = coder.Encode(product.Sku); if (separateByItem) { for (int i = 0; i < (int)inputRow.Quantity.Value; i++) { productData.Add(product); } } else { product.Quantity = (int)inputRow.Quantity.Value; productData.Add(product); } } } return(productData); }
/// <summary> /// Funkcja generująca obrazek z kodem 128 /// </summary> /// <param name="data">Dane do przetworzenia</param> /// <param name="barWeight">Szerokość kresek</param> /// <returns>Obrazek z kodem</returns> public static Image Code128(string data, int barWeight) { if(data.Length < 2) { return null; } Code128 content = new Code128(data); int[] codes = content.Codes; // Obliczanie szerokości dla kodu int width, height; width = ((codes.Length - 3) * 11 + 35) * barWeight; height = Convert.ToInt32(System.Math.Ceiling(Convert.ToSingle(width) * .15F)); if (height < 100) height = 100; // Dodanie cichej strefy na początku i na końcu width += 2 * cQuietWidth * barWeight; // Stworzenie obrazka z kodem Image img = new Bitmap(width, height); using (Graphics gr = Graphics.FromImage(img)) { // Wyczyszczenie grafiki (białe tło) gr.Clear(Color.White); Font cn = new Font("Courier New", 20, FontStyle.Bold, GraphicsUnit.Point); gr.TextRenderingHint = TextRenderingHint.AntiAliasGridFit; gr.DrawString("Code128", cn, new SolidBrush(Color.Black), 0, 0); int cursor = cQuietWidth * barWeight; for (int i = 0; i < codes.Length; i++) { int code = codes[i]; // Rysujemy tylko czarne kreski for (int bar = 0; bar < 8; bar += 2) { int barwidth = cPatterns[code, bar] * barWeight; int spcwidth = cPatterns[code, bar + 1] * barWeight; if (barwidth > 0) { gr.FillRectangle(Brushes.Black, cursor, 25, barwidth, height - 30); } cursor += (barwidth + spcwidth); } } } return img; }