Example #1
0
        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);
        }
Example #2
0
        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);
        }