public void PrintImageFromURL(string ImgURL) { PrintImage pi = new PrintImage(); pi.Url = ImgURL; Send("/PrintImageFromURL", pi); }
public void PrintImageFromURL(HttpListenerContext context) { PrintImage message = ParseRequest <PrintImage>(context); if (message.Url != null) { GetServer.CloverConnector.PrintImageFromURL(message.Url); this.SendTextResponse(context, ""); } }
public void PrintImage(HttpListenerContext context) { PrintImage message = ParseRequest <PrintImage>(context); if (message.Bitmap != null) { GetServer.CloverConnector.PrintImage(message.GetBitmap()); this.SendTextResponse(context, ""); } }
public void PrintImage(System.Drawing.Bitmap bitmap) { MemoryStream ms = new MemoryStream(); bitmap.Save(ms, ImageFormat.Png); byte[] imgBytes = ms.ToArray(); string base64Image = Convert.ToBase64String(imgBytes); PrintImage pi = new PrintImage(); pi.Bitmap = base64Image; Send("/PrintImage", pi); }
public void PrintImage(Bitmap bitmap) { if (websocket != null) { PrintImageRequestMessage message = new PrintImageRequestMessage(); PrintImage pi = new PrintImage(); MemoryStream ms = new MemoryStream(); bitmap.Save(ms, ImageFormat.Png); byte[] imgBytes = ms.ToArray(); string base64Image = Convert.ToBase64String(imgBytes); pi.Bitmap = base64Image; // serialize image to string.. message.payload = pi; websocket.Send(JsonUtils.serialize(message)); } }
private void print_print(object sender, PrintPageEventArgs pe) { int print_Y = 3; //打印当前行的Y坐标 int print_X = 8; //打印当前行的Y坐标 if (Width <= 0) { Width = PrinterDocument.DefaultPageSettings.PaperSize.Width - PrinterDocument.DefaultPageSettings.Margins.Left - PrinterDocument.DefaultPageSettings.Margins.Right; } if (PrintImage != null) { if (pe.PageBounds.Width < PrintImage.Width) { //Rectangle rect = new Rectangle(0, 0, 100, 100); //bmp.RotateFlip(RotateFlipType.Rotate90FlipNone); PrintImage.RotateFlip(RotateFlipType.Rotate90FlipNone); pe.Graphics.DrawImage(PrintImage, 2, 2); } else { pe.Graphics.DrawImage(PrintImage, 1, 1); } } foreach (var pp in PrinterItems) { SizeF sf = pe.Graphics.MeasureString(pp.value, pp.font); if (pp.textalgin == "left") { pe.Graphics.DrawString(pp.value, pp.font, pp.brush, new Point(print_X, print_Y));//左对齐 } else if (pp.textalgin == "center") { int w = (int)sf.Width; pe.Graphics.DrawString(pp.value, pp.font, pp.brush, new Point((Width - w) / 2, print_Y));//左对齐 } else { int w = (int)sf.Width; pe.Graphics.DrawString(pp.value, pp.font, pp.brush, new Point(Width - w, print_Y)); //右对齐 } print_Y += (int)sf.Height + 3; //移至下一行 } }
public void PrintImageFromURL(HttpListenerContext context) { try { PrintImage message = ParseRequest <PrintImage>(context); if (message.Url != null) { GetServer.CloverConnector.PrintImageFromURL(message.Url); this.SendTextResponse(context, ""); } } catch (Exception e) { context.Response.StatusCode = 400; context.Response.StatusDescription = e.Message; this.SendTextResponse(context, "error processing request"); } }
private void DoPrint(object arg) { try { Status = PrintJobStatus.Printing; OnStatusUpdate("Printing Started"); //PrintThreadParameter printThreadParametr = (PrintThreadParameter)arg; IList <FilmBox> filmBoxList = (IList <FilmBox>)arg; var printJobDir = new System.IO.DirectoryInfo(FullPrintJobFolder); if (!printJobDir.Exists) { printJobDir.Create(); } DicomFile file; List <string> autoIDList = new List <string>(); for (int i = 0; i < filmBoxList.Count; i++) { DicomUID autoID = DicomUID.Generate(); var filmBox = filmBoxList[i]; //One Film Box, One Folder //var filmBoxDir = printJobDir.CreateSubdirectory(string.Format("F{0:000000}", i + 1 )); var filmBoxDir = printJobDir.CreateSubdirectory(autoID.UID); //Film Session Relative DICOM Tag file = new DicomFile(filmBox.FilmSession); file.Save(string.Format(@"{0}\FilmSession.dcm", filmBoxDir.FullName)); FilmBoxFolderList.Add(filmBoxDir.FullName); List <string> ImageList = filmBox.SaveImage(filmBoxDir.FullName); #region PrintTask Content PrintTask printTask = new PrintTask(); printTask.FilmUID = autoID.UID; printTask.CallingIPAddress = CallingIPAddress; printTask.CallingAE = CallingAETitle; printTask.CalledAE = CalledAETitle; #region Get Film Session Level DICOM Tag, Save in PrintTag Structure printTask.NumberOfCopies = filmBox.FilmSession.NumberOfCopies; printTask.MediumType = filmBox.FilmSession.MediumType; #endregion #region Get Film Box Level DICOM Tag, Save in PrintTag Structure printTask.printUID = SOPInstanceUID.UID; printTask.BorderDensity = filmBox.BorderDensity; printTask.ImageDisplayFormat = filmBox.ImageDisplayFormat; printTask.EmptyImageDensity = filmBox.EmptyImageDensity; printTask.FilmSizeID = filmBox.FilmSizeID; printTask.FilmOrienation = filmBox.FilmOrienation; printTask.MagnificationType = filmBox.MagnificationType; printTask.MaxDensity = filmBox.MaxDensity; printTask.MinDensity = filmBox.MinDensity; printTask.SmoothingType = filmBox.SmoothingType; printTask.Trim = filmBox.Trim; printTask.PresentationLut = filmBox.PresentationLut == null ? string.Empty : filmBox.PresentationLut.ToString(); #endregion #endregion int imageCount = ImageList.Count; for (int imageIndex = 0; imageIndex < imageCount; imageIndex++) { #region PrintImage Content PrintImage printImage = new PrintImage(); printImage.FilmUID = autoID.UID; printImage.ImageBoxPosition = imageIndex; string imagePath = string.Format(@"{0}\I{1:000000}", filmBoxDir.FullName, imageIndex + 1); printImage.DicomFilePath = imagePath + ".dcm"; //Save into Table T_PrintTag if (printImage.SaveToDB() == false) { Log.Error("Print Job {0} FAIL: {1}", SOPInstanceUID.UID.Split('.').Last(), "Save PrintImage to DB Failed"); } #endregion } int index = 0; foreach (var item in filmBox.BasicImageBoxes) { if (item != null && item.ImageSequence != null && item.ImageSequence.Contains(DicomTag.PixelData)) { try { var image = new DicomImage(item.ImageSequence); image.RenderImage().AsBitmap().Save(ImageList[index]); index++; } finally { } } } //Parse DICOM File and render into Memory As image var combineJpgFile = string.Format(@"{0}\{1}" + ".jpg", FilmBoxFolderList[i], autoID.UID); int row = 0, column = 0; GetDisplayFormat(printTask.ImageDisplayFormat, ref row, ref column); CombineImages(ImageList, combineJpgFile, row, column); printTask.JpgFilmPath = combineJpgFile; //Save into Table T_PrintTag if (printTask.SaveToDB() == false) { Log.Error("Print Job {0} FAIL: {1}", SOPInstanceUID.UID.Split('.').Last(), "Save printTask to DB Failed"); } autoIDList.Add(autoID.UID); } Status = PrintJobStatus.Done; OnStatusUpdate("Printing Done"); foreach (var autoIDItem in autoIDList) { ClientStart(autoIDItem, this.CallingIPAddress, this.CallingAETitle); } } catch (Exception ex) { Status = PrintJobStatus.Failure; OnStatusUpdate("Printing failed"); Log.Error("Print Job {0} FAIL: {1}", SOPInstanceUID.UID.Split('.').Last(), ex.Message); } finally { } }