setted print space and argument to print on label

This commit is contained in:
Claudio Boggian
2022-10-28 17:46:47 +02:00
parent d6e210aeab
commit 1c87a86f1c
4 changed files with 68 additions and 28 deletions
+24 -5
View File
@@ -10,6 +10,7 @@ namespace console_lps;
public class Program public class Program
{ {
private List<LabelItem> liToPrintList; private List<LabelItem> liToPrintList;
private List<QrValue> qrToPrintList;
private int itemCount; private int itemCount;
public static void Main() public static void Main()
@@ -22,29 +23,47 @@ public class Program
{ {
string[] dataToPrint = string[] dataToPrint =
{ {
"4",
"HELLO WORLD!", "HELLO WORLD!",
"I WRITE SOME TEXT IN THIS SPACE TO CHECK HOW IT WAS PRINTED" "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce interdum, tortor et aliquet pretium, ipsum nunc fringilla magna, mattis dictum orci nisi ut metus. Mauris malesuada et neque a feugiat. Integer sit amet posuere nisl, eu semper elit.",
"F000705 Rif.8036664848 26/10/2022\n\rOA22-00294"
};
string[] qrToPrint =
{
"ekloifneisofnewionf",
"doiwbhdiuwhd"
}; };
//DateTime delDate = new DateTime(); //DateTime delDate = new DateTime();
//DateTime.TryParse(dataToPrint[10], out delDate); //DateTime.TryParse(dataToPrint[10], out delDate);
itemCount += 1; itemCount += 4;
liToPrintList = new List<LabelItem>(); liToPrintList = new List<LabelItem>();
liToPrintList.Add(new LabelItem() liToPrintList.Add(new LabelItem()
{ {
ItemId = dataToPrint[0], TotalLabels = short.Parse(dataToPrint[0], NumberStyles.Float),
ItemDescription = dataToPrint[1], ItemId = dataToPrint[1],
ItemDescription = dataToPrint[2],
VendPackingSlipReference = dataToPrint[3]
});
qrToPrintList = new List<QrValue>();
qrToPrintList.Add(new QrValue()
{
Item = qrToPrint[0],
Value = qrToPrint[1]
}); });
// Definisce dove viene stampata l'etichetta // Definisce dove viene stampata l'etichetta
var printer = "\\\\PALAPPS03.PAL.LOCAL\\ETM03"; var printer = "\\\\PALAPPS03.PAL.LOCAL\\ETM03";
//var printer = "\\\\PALPRINTER02.PAL.LOCAL\\ST05_64";
using (PrintDocument pdLabel = LabelPrinterService.PreparePrintDocument(printer, liToPrintList[0].TotalLabels)) using (PrintDocument pdLabel = LabelPrinterService.PreparePrintDocument(printer, liToPrintList[0].TotalLabels))
{ {
pdLabel.PrintPage += (sender, evt) => LabelPrinterService.label_PrintWmsItems(sender, evt, itemCount, liToPrintList[0]); pdLabel.PrintPage += (sender, evt) => LabelPrinterService.label_PrintWmsItems(sender, evt, itemCount, liToPrintList[0], qrToPrintList[0]);
pdLabel.Print(); pdLabel.Print();
} }
} }
+1 -1
View File
@@ -7,7 +7,7 @@ public class LabelItem
public short TotalLabels { get; set; } public short TotalLabels { get; set; }
public string ItemId { get; set; } public string ItemId { get; set; }
public string ItemDescription { get; set; } public string ItemDescription { get; set; }
List<QrValue> QrValues { get; set; } public string VendPackingSlipReference { get; set; }
} }
public class QrValue public class QrValue
+16 -17
View File
@@ -3,6 +3,7 @@ using System.Drawing;
using System.Drawing.Printing; using System.Drawing.Printing;
using System.Globalization; using System.Globalization;
using console_lps.Repository; using console_lps.Repository;
using Newtonsoft.Json;
namespace console_lps.Services; namespace console_lps.Services;
@@ -15,27 +16,29 @@ public class LabelPrinterService
internal static PrintDocument PreparePrintDocument(string printer, short numOfCopies = 1) internal static PrintDocument PreparePrintDocument(string printer, short numOfCopies = 1)
{ {
PaperSize paperSize = new PaperSize("Custom Size", 410, 158); PaperSize paperSize = new PaperSize("Custom Size", 410, 168);
Margins margins = new Margins(5, 5, 3, 3);
PrintDocument labelToPrint = new PrintDocument(); PrintDocument labelToPrint = new PrintDocument();
labelToPrint.DefaultPageSettings.PaperSize = paperSize; labelToPrint.DefaultPageSettings.PaperSize = paperSize;
labelToPrint.PrinterSettings.PrinterName = printer; labelToPrint.PrinterSettings.PrinterName = printer;
labelToPrint.PrinterSettings.DefaultPageSettings.PaperSize = paperSize; labelToPrint.PrinterSettings.DefaultPageSettings.PaperSize = paperSize;
labelToPrint.PrinterSettings.Copies = numOfCopies; labelToPrint.PrinterSettings.Copies = numOfCopies;
labelToPrint.PrinterSettings.DefaultPageSettings.Margins = margins;
return labelToPrint; return labelToPrint;
} }
public static void label_PrintWmsItems(object sender, PrintPageEventArgs e, int itemCount, LabelItem item) public static void label_PrintWmsItems(object sender, PrintPageEventArgs e, int itemCount, LabelItem label, QrValue qr)
{ {
try try
{ {
int offsetx = 8; int offsetx = 8;
int offsety = 8; int offsety = -13;
offsety += -19;
SolidBrush brush = new SolidBrush(Color.Black); SolidBrush brush = new SolidBrush(Color.Black);
@@ -44,43 +47,39 @@ public class LabelPrinterService
Font fntBold = new Font("Bitstream Vera Sans Mono", 13.0F, FontStyle.Bold); Font fntBold = new Font("Bitstream Vera Sans Mono", 13.0F, FontStyle.Bold);
// Codice QR // Codice QR
//e.Graphics.DrawImage(Utils.GenerateQRCode_Image(JsonConvert.SerializeObject(new QrValue() //e.Graphics.DrawImage(Utils.GenerateQRCode_Image(JsonConvert.SerializeObject(qr),
//{
// Value = "Hello World! I'm a fucking QR CODE",
// Item = ""
//}),
//135, 135), offsetx, offsety); //135, 135), offsetx, offsety);
offsetx += 137; offsetx += 137;
Font fntItemId = new Font("Bitstream Vera Sans Mono", 20.0F, FontStyle.Bold); Font fntItemId = new Font("Bitstream Vera Sans Mono", 20.0F, FontStyle.Bold);
if (item.ItemId.Length > 14) if (label.ItemId.Length > 14)
fntItemId = new Font("Bitstream Vera Sans Mono", 14.0F, FontStyle.Bold); fntItemId = new Font("Bitstream Vera Sans Mono", 14.0F, FontStyle.Bold);
// Item Id // Item Id
offsety += 10; offsety += 10;
e.Graphics.DrawString(item.ItemId, fntItemId, brush, offsetx, offsety); e.Graphics.DrawString(label.ItemId, fntItemId, brush, offsetx, offsety);
////Batch ////Batch
//if (!string.IsNullOrEmpty(item.InventBatchId)) //if (!string.IsNullOrEmpty(label.InventBatchId))
//{ //{
// Font fntBatchId = new Font("Bitstream Vera Sans Mono", 14.0F, FontStyle.Regular); // Font fntBatchId = new Font("Bitstream Vera Sans Mono", 14.0F, FontStyle.Regular);
// offsety += 24; // offsety += 24;
// e.Graphics.DrawString(item.InventBatchId, fntBatchId, brush, offsetx, offsety); // e.Graphics.DrawString(label.InventBatchId, fntBatchId, brush, offsetx, offsety);
//} //}
offsetx += 4; offsetx += 4;
offsety += 31; offsety += 31;
string format = CultureInfo.GetCultureInfo("IT-it").DateTimeFormat.ShortDatePattern; string format = CultureInfo.GetCultureInfo("IT-it").DateTimeFormat.ShortDatePattern;
e.Graphics.DrawString((item.ItemDescription.Length > 36 ? item.ItemDescription.Substring(0, 36) + "\r\n" + item.ItemDescription.Substring(36, item.ItemDescription.Length - 36) : item.ItemDescription + "\r\n") e.Graphics.DrawString( Utils.TextFormatter(label.ItemDescription, 35) + "\n\r" + label.VendPackingSlipReference
, fnt , fnt
, brush , brush
, offsetx , offsetx
, offsety); , offsety);
//e.Graphics.DrawString("\r\n" + "\r\n" + "\r\n" + item.UoM + " " + Utils.ConvertDecimalInString_TwoDecimal(item.InventQty) //e.Graphics.DrawString("\r\n" + "\r\n" + "\r\n" + label.UoM + " " + Utils.ConvertDecimalInString_TwoDecimal(label.InventQty)
// , fnt // , fnt
// , brush // , brush
// , offsetx + 226 // , offsetx + 226
@@ -88,13 +87,13 @@ public class LabelPrinterService
// , new StringFormat() { Alignment = StringAlignment.Far }); // , new StringFormat() { Alignment = StringAlignment.Far });
//offsety += 50; //offsety += 50;
//e.Graphics.DrawString(item.PbmProjectInventId //e.Graphics.DrawString(label.PbmProjectInventId
// , fntBold // , fntBold
// , brush // , brush
// , offsetx // , offsetx
// , offsety); // , offsety);
//e.Graphics.DrawString(item.WmsLocationId //e.Graphics.DrawString(label.WmsLocationId
// , fntBold // , fntBold
// , brush // , brush
// , offsetx + 226 // , offsetx + 226
+27 -5
View File
@@ -1,18 +1,27 @@
using System.Diagnostics; using System.Collections;
using System.Diagnostics;
using System.Drawing; using System.Drawing;
using Serilog; using Serilog;
using ZXing;
using ZXing.Common;
using ZXing.QrCode; using ZXing.QrCode;
using ZXing.QrCode.Internal;
using ZXing.Rendering;
namespace console_lps; namespace console_lps;
public class Utils public class Utils
{ {
internal static Image GenerateQRCode_Image(string data, int width, int height, int x = 0, int y = 0, int croppedHeight = 0, int croppedWidth = 0) internal static Bitmap GenerateQRCode_Image(string data, int width, int height, int x = 0, int y = 0, int croppedHeight = 0, int croppedWidth = 0)
{ {
QRCodeWriter qr = new QRCodeWriter(); QRCodeWriter qr = new QRCodeWriter();
var matrix = qr.encode(data, ZXing.BarcodeFormat.QR_CODE, width, height); var matrix = qr.encode(data, ZXing.BarcodeFormat.QR_CODE, width, height, new Dictionary<EncodeHintType, object>());
ZXing.BarcodeWriter<Bitmap> w = new ZXing.BarcodeWriter<Bitmap> { Format = ZXing.BarcodeFormat.QR_CODE }; ZXing.BarcodeWriter<Bitmap> w = new ZXing.BarcodeWriter<Bitmap>
System.Drawing.Bitmap img = w.Write(matrix); {
Format = ZXing.BarcodeFormat.QR_CODE
};
Bitmap img = w.Write(matrix);
if (x != 0 || y != 0) if (x != 0 || y != 0)
{ {
@@ -35,4 +44,17 @@ public class Utils
var message = "ERRORE => " + exc.Message + "\r\n -> alla linea di codice " + callStack.GetFileLineNumber() + "\r\n -> nel metodo " + callStack.GetMethod() + "\r\n -> del file " + callStack.GetFileName() + "\r\n -> in data " + System.DateTime.Now + "\r\n"; var message = "ERRORE => " + exc.Message + "\r\n -> alla linea di codice " + callStack.GetFileLineNumber() + "\r\n -> nel metodo " + callStack.GetMethod() + "\r\n -> del file " + callStack.GetFileName() + "\r\n -> in data " + System.DateTime.Now + "\r\n";
Log.Logger.Error(message); Log.Logger.Error(message);
} }
internal static string TextFormatter(string text, int interval)
{
if (text == null)
return null;
if (text.Length > 210)
text = text.Substring(0, 210);
string res = String.Concat(text.Select((c, i) => i > 0 && (i % interval) == 0 ? c.ToString() + Environment.NewLine : c.ToString()));
return res;
}
} }