private static List <PrintQueueItem> ProcessBitmaps(IEnumerable <Bitmap> bitmaps, string printer, string userHostAddress = "") { var output = new List <PrintQueueItem>(); bool isPrintiOriginal = printiOriginalPrinterNames.Contains(printer); foreach (Bitmap bitmap in bitmaps) { Console.WriteLine("BASE64: " + DateTime.Now.ToLocalTime().ToString() + " =-= " + userHostAddress); byte[] data; if (isPrintiOriginal) { MemoryStream ms = new MemoryStream(); bitmap.Save(ms, ImageFormat.Jpeg); data = ms.ToArray(); } else { data = new RasterPrinter().ImageToPrintCommands(bitmap, new BurkesDitherer()); } var queueItem = new PrintQueueItem(data, !isPrintiOriginal, DateTime.Now, DateTime.Now + new TimeSpan(30, 0, 0, 0)); output.Add(queueItem); } return(output); }
private static List <PrintQueueItem> ProcessFiles(IEnumerable <HttpFile> files, string printer, string userHostAddress = "") { var output = new List <PrintQueueItem>(); bool isPrintiOriginal = printiOriginalPrinterNames.Contains(printer); foreach (var file in files) { Console.WriteLine("FILE: " + DateTime.Now.ToLocalTime().ToString() + " =-= " + userHostAddress + " =-= " + file.Name); if (file.Value.Length > 10e7) { Console.WriteLine("File too big: {0}", file.Value.Length); continue; } byte[] data = null; string fileNamePreference = LegalizeFilename(file.Name); if (isPrintiOriginal) { using (BinaryReader br = new BinaryReader(file.Value)) { data = br.ReadBytes((int)file.Value.Length); } } else { Bitmap bitmap = ConvertFileToBitmap(file); if (bitmap != null) { data = new RasterPrinter().ImageToPrintCommands(bitmap, new BurkesDitherer()); } fileNamePreference = fileNamePreference + ".bin"; } if (data != null) { var queueItem = new PrintQueueItem(data, !isPrintiOriginal, DateTime.Now, DateTime.Now + new TimeSpan(30, 0, 0, 0), fileNamePreference); output.Add(queueItem); } } return(output); }