Exemple #1
0
        private void ViewBarCode()
        {
            PrintTemplateModel model = new PrintTemplateHelper().GetConfig();

            if (model == null)
            {
                MessageBox.Show("打印模板参数获取失败!");
                return;
            }

            var      paperWidth  = model.PageWidth * printMultiple;
            var      paperHeight = model.PageHeight * printMultiple;
            Bitmap   image       = new Bitmap(paperWidth, paperHeight);
            Graphics g           = Graphics.FromImage(image);

            System.Drawing.Brush bush = new SolidBrush(System.Drawing.Color.Black);//填充的颜色

            try
            {
                //消除锯齿
                g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
                g.PageUnit      = GraphicsUnit.Pixel;
                //清空图片背景颜色
                g.Clear(System.Drawing.Color.White);

                var code = "1231125-102-23";

                #region PDF417
                PDF417EncodingOptions pdf_options = new PDF417EncodingOptions
                {
                    Margin       = 0,
                    DisableECI   = true,
                    CharacterSet = "UTF-8",
                    Width        = ConvertInt(model.BarCodeWidth),
                    Height       = ConvertInt(model.BarCodeHeight),
                    PureBarcode  = false
                };
                var pdf417Writer = new ZXing.BarcodeWriter();
                pdf417Writer.Format  = BarcodeFormat.PDF_417;
                pdf417Writer.Options = pdf_options;
                #endregion

                Bitmap bmp = pdf417Writer.Write(code);

                // Bitmap bmp = CreateImg.GenerateBitmap(code, 5, 5);
                g.DrawImage(bmp, ConvertInt(model.BarCodeX), ConvertInt(model.BarCodeY), ConvertInt(model.BarCodeWidth), ConvertInt(model.BarCodeHeight));

                IntPtr       myImagePtr = image.GetHbitmap();                                                                                                                           //创建GDI对象,返回指针
                BitmapSource imgsource  = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(myImagePtr, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()); //创建imgSource

                DeleteObject(myImagePtr);

                imgTest.Source = imgsource;
            }
            finally
            {
                g.Dispose();
                image.Dispose();
            }
        }
Exemple #2
0
        private void LoadConfig()
        {
            PrintTemplateModel model = new PrintTemplateHelper().GetConfig();

            if (model == null)
            {
                MessageBox.Show("获取参数失败!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }

            /// <summary>
            /// 页面宽度
            /// </summary>
            txtPageWidth.Text = model.PageWidth + "";
            /// <summary>
            /// 页面高度
            /// </summary>
            txtPageHeight.Text = model.PageHeight + "";

            /// <summary>
            /// 病区文字
            /// </summary>
            sliderAreaFontSize.Value = model.AreaFontSize;
            /// <summary>
            /// 病区文字X坐标
            /// </summary>
            txtAreaFontX.Text = model.AreaFontX + "";
            /// <summary>
            /// 病区文字Y坐标
            /// </summary>
            txtAreaFontY.Text = model.AreaFontY + "";

            /// <summary>
            /// 日期文字
            /// </summary>
            sliderDateFontSize.Value = model.DateFontSize;
            /// <summary>
            /// 日期文字X坐标
            /// </summary>
            txtDateFontX.Text = model.DateFontX + "";
            /// <summary>
            /// 日期文字Y坐标
            /// </summary>
            txtDateFontY.Text = model.DateFontY + "";

            /// <summary>
            /// 二维码文字
            /// </summary>
            sliderQRCodeFontSize.Value = model.QRCodeHeight;
            /// <summary>
            /// 二维码文字X坐标
            /// </summary>
            txtQRCodeFontX.Text = model.QRCodeX + "";
            /// <summary>
            /// 二维码文字Y坐标
            /// </summary>
            txtQRCodeFontY.Text = model.QRCodeY + "";

            /// <summary>
            /// 第一条分割线宽度
            /// </summary>
            sliderSplitWidth.Value = model.SplitWidth;
            /// <summary>
            /// 第一条分割线X坐标
            /// </summary>
            txtSplitX.Text = model.SplitX + "";
            /// <summary>
            /// 第一条分割线Y坐标
            /// </summary>
            txtSplitY.Text = model.SplitY + "";

            #region 病人编号
            /// <summary>
            /// 病人编号文字
            /// </summary>
            sliderDoctorAdviceFontSize.Value = model.GroupNumFontSize;
            /// <summary>
            /// 病人编号文字X坐标
            /// </summary>
            txtDoctorAdviceFontX.Text = model.GroupNumFontX + "";
            /// <summary>
            /// 病人编号文字Y坐标
            /// </summary>
            txtDoctorAdviceFontY.Text = model.GroupNumUnFontY + "";
            #endregion

            #region 床位
            /// <summary>
            /// 床位文字
            /// </summary>
            sliderBedFontSize.Value = model.BedFontSize;
            /// <summary>
            /// 床位文字X坐标
            /// </summary>
            txtBedFontX.Text = model.BedFontX + "";
            /// <summary>
            /// 床位文字Y坐标
            /// </summary>
            txtBedFontY.Text = model.BedFontY + "";
            #endregion

            /// <summary>
            /// 患者名称文字
            /// </summary>
            sliderPatientFontSize.Value = model.PatientFontSize;
            /// <summary>
            /// 患者名称文字X坐标
            /// </summary>
            txtPatientFontX.Text = model.PatientFontX + "";
            /// <summary>
            /// 患者名称文字Y坐标
            /// </summary>
            txtPatientFontY.Text = model.PatientFontY + "";

            /// <summary>
            /// 性别文字
            /// </summary>
            sliderGenderFontSize.Value = model.GenderFontSize;
            /// <summary>
            /// 性别文字X坐标
            /// </summary>
            txtGenderFontX.Text = model.GenderFontX + "";
            /// <summary>
            /// 性别文字Y坐标
            /// </summary>
            txtGenderFontY.Text = model.GenderFontY + "";

            /// <summary>
            /// 核对文字
            /// </summary>
            sliderCheckFontSize.Value = model.CheckFontSize;
            /// <summary>
            /// 核对文字X坐标
            /// </summary>
            txtCheckFontX.Text = model.CheckFontX + "";
            /// <summary>
            /// 核对文字Y坐标
            /// </summary>
            txtCheckFontY.Text = model.CheckFontY + "";

            /// <summary>
            /// 编号文字
            /// </summary>
            sliderSerialNumberFontSize.Value = model.is_print_snvFontSize;
            /// <summary>
            /// 编号文字X坐标
            /// </summary>
            txtSerialNumberFontX.Text = model.is_print_snvFontX + "";
            /// <summary>
            /// 编号文字Y坐标
            /// </summary>
            txtSerialNumberFontY.Text = model.is_print_snvFontY + "";

            /// <summary>
            /// 第二条分割线宽度
            /// </summary>
            sliderSplit2Width.Value = model.Split2Width;
            /// <summary>
            /// 第二条分割线X坐标
            /// </summary>
            txtSplit2X.Text = model.Split2X + "";
            /// <summary>
            /// 第二条分割线Y坐标
            /// </summary>
            txtSplit2Y.Text = model.Split2Y + "";

            /// <summary>
            /// 药名标题文字
            /// </summary>
            sliderDrugsTitleFontSize.Value = model.DrugsTitleFontSize;
            /// <summary>
            /// 药名标题文字X坐标
            /// </summary>
            txtDrugsTitleFontX.Text = model.DrugsTitleFontX + "";
            /// <summary>
            /// 药名标题文字Y坐标
            /// </summary>
            txtDrugsTitleFontY.Text = model.DrugsTitleFontY + "";

            /// <summary>
            /// 药品名称文字
            /// </summary>
            sliderDrugsContentFontSize.Value = model.DrugsContentFontSize;
            /// <summary>
            /// 药品名称文字X坐标
            /// </summary>
            txtDrugsContentFontX.Text = model.DrugsContentFontX + "";
            /// <summary>
            /// 药品名称文字Y坐标
            /// </summary>
            txtDrugsContentFontY.Text = model.DrugsContentFontY + "";

            #region 规格
            /// <summary>
            /// 规格标题文字
            /// </summary>
            sliderSpecTitleFontSize.Value = model.SpecTitleFontSize;
            /// <summary>
            /// 规格标题文字X坐标
            /// </summary>
            txtSpecTitleFontX.Text = model.SpecTitleFontX + "";
            /// <summary>
            /// 规格标题文字Y坐标
            /// </summary>
            txtSpecTitleFontY.Text = model.SpecTitleFontY + "";

            /// <summary>
            /// 规格值文字
            /// </summary>
            sliderSpecValueFontSize.Value = model.SpecValueFontSize;
            /// <summary>
            /// 规格值文字X坐标
            /// </summary>
            txtSpecValueFontX.Text = model.SpecValueFontX + "";
            /// <summary>
            /// 规格值文字Y坐标
            /// </summary>
            txtSpecValueFontY.Text = model.SpecValueFontY + "";
            #endregion

            #region 用量
            /// <summary>
            /// 用量标题文字
            /// </summary>
            sliderUseSpTitleFontSize.Value = model.UseSpTitleFontSize;
            /// <summary>
            /// 用量标题文字X坐标
            /// </summary>
            txtUseSpTitleFontX.Text = model.UseSpTitleFontX + "";
            /// <summary>
            /// 用量标题文字Y坐标
            /// </summary>
            txtUseSpTitleFontY.Text = model.UseSpTitleFontY + "";

            /// <summary>
            /// 用量值文字
            /// </summary>
            sliderUseSpValueFontSize.Value = model.UseSpValueFontSize;
            /// <summary>
            /// 用量值文字X坐标
            /// </summary>
            txtUseSpValueFontX.Text = model.UseSpValueFontX + "";
            /// <summary>
            /// 用量值文字Y坐标
            /// </summary>
            txtUseSpValueFontY.Text = model.UseSpValueFontY + "";
            #endregion

            #region 数量
            /// <summary>
            /// 数量标题文字
            /// </summary>
            sliderUseTitleFontSize.Value = model.UseTitleFontSize;
            /// <summary>
            /// 数量标题文字X坐标
            /// </summary>
            txtUseTitleFontX.Text = model.UseTitleFontX + "";
            /// <summary>
            /// 数量标题文字Y坐标
            /// </summary>
            txtUseTitleFontY.Text = model.UseTitleFontY + "";

            /// <summary>
            /// 数量值文字
            /// </summary>
            sliderUseValueFontSize.Value = model.UseValueFontSize;
            /// <summary>
            /// 数量值文字X坐标
            /// </summary>
            txtUseValueFontX.Text = model.UseValueFontX + "";
            /// <summary>
            /// 数量值文字Y坐标
            /// </summary>
            txtUseValueFontY.Text = model.UseValueFontY + "";
            #endregion

            #region 医院名称
            /// <summary>
            /// 医院名称文字
            /// </summary>
            sliderHospitalNameFontSize.Value = model.HospitalNameFontSize;
            /// <summary>
            /// 医院名称文字
            /// </summary>X坐标
            txtHospitalNameFontX.Text = model.HospitalNameFontX + "";
            /// <summary>
            /// 医院名称文字Y坐标
            /// </summary>
            txtHospitalNameFontY.Text = model.HospitalNameFontY + "";
            #endregion

            #region 医嘱类型
            /// <summary>
            /// 医院名称文字
            /// </summary>
            sliderOrderTypeFontSize.Value = model.OrderTypeFontSize;
            /// <summary>
            /// 医院名称文字
            /// </summary>X坐标
            txtOrderTypeFontX.Text = model.OrderTypeFontX + "";
            /// <summary>
            /// 医院名称文字Y坐标
            /// </summary>
            txtOrderTypeFontY.Text = model.OrderTypeFontY + "";
            #endregion

            #region 特殊用药
            /// <summary>
            /// 特殊用药文字
            /// </summary>
            sliderspecial_medicationtipFontSize.Value = model.special_medicationtipFontSize;
            /// <summary>
            /// 特殊用药文字X坐标
            /// </summary>
            txtspecial_medicationtipFontX.Text = model.special_medicationtipFontX + "";
            /// <summary>
            /// 特殊用药文字Y坐标
            /// </summary>
            txtspecial_medicationtipFontY.Text = model.special_medicationtipFontY + "";
            #endregion

            #region 批次名称
            /// <summary>
            /// 批次名称文字
            /// </summary>
            sliderBatchNameFontSize.Value = model.BatchNameFontSize;
            /// <summary>
            /// 批次名称文字X坐标
            /// </summary>
            txtBatchNameFontX.Text = model.BatchNameFontX + "";
            /// <summary>
            /// 批次名称文字Y坐标
            /// </summary>
            txtBatchNameFontY.Text = model.BatchNameFontY + "";
            #endregion

            #region 年龄
            /// <summary>
            /// 年龄文字
            /// </summary>
            sliderAgeFontSize.Value = model.AgeFontSize;
            /// <summary>
            /// 年龄文字X坐标
            /// </summary>
            txtAgeFontX.Text = model.AgeFontX + "";
            /// <summary>
            /// 年龄文字Y坐标
            /// </summary>
            txtAgeFontY.Text = model.AgeFontY + "";
            #endregion

            /// <summary>
            /// 给药文字
            /// </summary>
            sliderDoseFontSize.Value = model.DoseFontSize;
            /// <summary>
            /// 给药文字
            /// </summary>X坐标
            txtDoseFontX.Text = model.DoseFontX + "";
            /// <summary>
            /// 给药文字Y坐标
            /// </summary>
            txtDoseFontY.Text = model.DoseFontY + "";

            /// <summary>
            /// 备注文字
            /// </summary>
            sliderRemarkFontSize.Value = model.RemarkFontSize;
            /// <summary>
            /// 备注文字X坐标
            /// </summary>
            txtRemarkFontX.Text = model.RemarkFontX + "";
            /// <summary>
            /// 备注文字Y坐标
            /// </summary>
            txtRemarkFontY.Text = model.RemarkFontY + "";

            /// <summary>
            /// 用药频次文字
            /// </summary>
            sliderSortFontSize.Value = model.UserFrequentFontSize;
            /// <summary>
            /// 用药频次文字X坐标
            /// </summary>
            txtSpeedFontX.Text = model.UserFrequentFontX + "";
            /// <summary>
            /// 用药频次文字Y坐标
            /// </summary>
            txtSpeedFontY.Text = model.UserFrequentFontY + "";

            /// <summary>
            /// 第三条分割线宽度
            /// </summary>
            sliderSplit2Width.Value = model.Split3Width;
            /// <summary>
            /// 第三条分割线X坐标
            /// </summary>
            txtSplit3X.Text = model.Split3X + "";
            /// <summary>
            /// 第三条分割线Y坐标
            /// </summary>
            txtSplit3Y.Text = model.Split3Y + "";

            /// <summary>
            /// 审核文字
            /// </summary>
            sliderExamineFontSize.Value = model.ExamineFontSize;
            /// <summary>
            /// 审核文字X坐标
            /// </summary>
            txtExamineFontX.Text = model.ExamineFontX + "";
            /// <summary>
            /// 审核文字Y坐标
            /// </summary>
            txtExamineFontY.Text = model.ExamineFontY + "";

            /// <summary>
            /// 复核文字
            /// </summary>
            sliderReviewFontSize.Value = model.ReviewFontSize;
            /// <summary>
            /// 复核文字X坐标
            /// </summary>
            txtReviewFontX.Text = model.ReviewFontX + "";
            /// <summary>
            /// 复核文字Y坐标
            /// </summary>
            txtReviewFontY.Text = model.ReviewFontY + "";

            /// <summary>
            /// 排药文字
            /// </summary>
            sliderSortFontSize.Value = model.SortFontSize;
            /// <summary>
            /// 排药文字X坐标
            /// </summary>
            txtSortFontX.Text = model.SortFontX + "";
            /// <summary>
            /// 排药文字Y坐标
            /// </summary>
            txtSortFontY.Text = model.SortFontY + "";

            /// <summary>
            /// 配液文字
            /// </summary>
            sliderDispensingFontSize.Value = model.DispensingFontSize;
            /// <summary>
            /// 配液文字X坐标
            /// </summary>
            txtDispensingFontX.Text = model.DispensingFontX + "";
            /// <summary>
            /// 配液文字Y坐标
            /// </summary>
            txtDispensingFontY.Text = model.DispensingFontY + "";

            /// <summary>
            /// 用法文字
            /// </summary>
            sliderUsageNameFontSize.Value = model.UsageNameFontSize;

            /// <summary>
            /// 用法文字X坐标
            /// </summary>
            txtUsageNameFontX.Text = model.UsageNameFontX + "";

            /// <summary>
            /// 用法文字Y坐标
            /// </summary>
            txtUsageNameFontY.Text = model.UsageNameFontY + "";

            /// <summary>
            /// 二维码条码宽度
            /// </summary>
            txtBarCodeWidth.Text = model.BarCodeWidth + "";
            /// <summary>
            /// 二维码条码高度
            /// </summary>
            txtBarCodeHeight.Text = model.BarCodeHeight + "";
            /// <summary>
            /// 二维码条码X坐标
            /// </summary>
            txtBarCodeX.Text = model.BarCodeX + "";
            /// <summary>
            /// 二维码条码Y坐标
            /// </summary>
            txtBarCodeY.Text = model.BarCodeY + "";
        }
Exemple #3
0
        private void ViewCard()
        {
            //if (printer == null)
            //{
            //    printer = printerManager.GetPrinter();
            //}

            PrintTemplateModel model = new PrintTemplateHelper().GetConfig();

            if (model == null)
            {
                MessageBox.Show("打印模板参数获取失败!");
                return;
            }

            string fontName = "SimSun";

            var      startTime   = DateTime.Now;
            var      paperWidth  = model.PageWidth * printMultiple;
            var      paperHeight = model.PageHeight * printMultiple;
            Bitmap   image       = new Bitmap(paperWidth, paperHeight);
            Graphics g           = Graphics.FromImage(image);

            System.Drawing.Brush bush = new SolidBrush(System.Drawing.Color.Black);//填充的颜色

            try
            {
                //消除锯齿
                g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                g.PageUnit      = GraphicsUnit.Pixel;
                //清空图片背景颜色
                g.Clear(System.Drawing.Color.White);

                var code = "1231125-102-23";
                #region PDF417
                PDF417EncodingOptions pdf_options = new PDF417EncodingOptions
                {
                    Margin       = 0,
                    DisableECI   = true,
                    CharacterSet = "UTF-8",
                    Width        = ConvertInt(model.BarCodeWidth),
                    Height       = ConvertInt(model.BarCodeHeight),
                    PureBarcode  = false
                };
                var pdf417Writer = new ZXing.BarcodeWriter();
                pdf417Writer.Format  = BarcodeFormat.PDF_417;
                pdf417Writer.Options = pdf_options;
                #endregion

                Bitmap bmp = pdf417Writer.Write(code);
                g.DrawImage(bmp, ConvertInt(model.BarCodeX), ConvertInt(model.BarCodeY), ConvertInt(model.BarCodeWidth), ConvertInt(model.BarCodeHeight));

                g.DrawString("普通外科二病区", new Font(fontName, ConvertFontInt(model.AreaFontSize), System.Drawing.FontStyle.Bold), bush, ConvertInt(model.AreaFontX), ConvertInt(model.AreaFontY));
                g.DrawString("2018-11-12补", new Font(fontName, ConvertFontInt(model.DateFontSize), System.Drawing.FontStyle.Bold), bush, ConvertInt(model.DateFontX), ConvertInt(model.DateFontY));
                g.DrawString("1/1", new Font(fontName, ConvertFontInt(model.PageNumFontSize), System.Drawing.FontStyle.Bold), bush, ConvertInt(model.PageNumFontX), ConvertInt(model.PageNumFontY));

                g.DrawLine(new System.Drawing.Pen(bush), new System.Drawing.Point(ConvertInt(model.SplitX), ConvertInt(model.SplitY)), new System.Drawing.Point(ConvertInt(model.SplitX + model.SplitWidth), ConvertInt(model.SplitY)));

                g.DrawString(code, new Font(fontName, ConvertFontInt(model.DoctorAdviceFontSize), System.Drawing.FontStyle.Bold), bush, ConvertInt(model.DoctorAdviceFontX), ConvertInt(model.DoctorAdviceFontY));
                g.DrawString("31床", new Font(fontName, ConvertFontInt(model.BedFontSize), System.Drawing.FontStyle.Bold), bush, ConvertInt(model.BedFontX), ConvertInt(model.BedFontY));
                g.DrawString("史新平", new Font(fontName, ConvertFontInt(model.PatientFontSize), System.Drawing.FontStyle.Bold), bush, ConvertInt(model.PatientFontX), ConvertInt(model.PatientFontY));
                g.DrawString("男", new Font(fontName, ConvertFontInt(model.GenderFontSize), System.Drawing.FontStyle.Bold), bush, ConvertInt(model.GenderFontX), ConvertInt(model.GenderFontY));
                g.DrawString("1批", new Font(fontName, ConvertFontInt(model.BatchNumberFontSize), System.Drawing.FontStyle.Bold), bush, ConvertInt(model.BatchNumberFontX), ConvertInt(model.BatchNumberFontY));
                g.DrawString("[C-4]-1", new Font(fontName, ConvertFontInt(model.SerialNumberFontSize), System.Drawing.FontStyle.Bold), bush, ConvertInt(model.SerialNumberFontX), ConvertInt(model.SerialNumberFontY));

                g.DrawLine(new System.Drawing.Pen(bush), new System.Drawing.Point(ConvertInt(model.Split2X), ConvertInt(model.Split2Y)), new System.Drawing.Point(ConvertInt(model.Split2X + model.Split2Width), ConvertInt(model.Split2Y)));

                g.DrawString("药品名称", new Font(fontName, ConvertFontInt(model.DrugsTitleFontSize), System.Drawing.FontStyle.Bold), bush, ConvertInt(model.DrugsTitleFontX), ConvertInt(model.DrugsTitleFontY));
                g.DrawString("5%葡萄糖注射液[100ml](非PVC双阀)", new Font(fontName, ConvertFontInt(model.DrugsContentFontSize)), bush, ConvertInt(model.DrugsContentFontX), ConvertInt(model.DrugsContentFontY));
                g.DrawString("数量", new Font(fontName, ConvertFontInt(model.UseTitleFontSize), System.Drawing.FontStyle.Bold), bush, ConvertInt(model.UseTitleFontX), ConvertInt(model.UseTitleFontY));
                g.DrawString("100ml", new Font(fontName, ConvertFontInt(model.UseValueFontSize)), bush, ConvertInt(model.UseValueFontX), ConvertInt(model.UseValueFontY));
                g.DrawString("处方医生:张慧", new Font(fontName, ConvertFontInt(model.DoctorFontSize)), bush, ConvertInt(model.DoctorFontX), ConvertInt(model.DoctorFontY));
                g.DrawString("备注:", new Font(fontName, ConvertFontInt(model.RemarkFontSize)), bush, ConvertInt(model.RemarkFontX), ConvertInt(model.RemarkFontY));
                g.DrawString("滴速:40滴/分   静脉续滴   qd(8点)", new Font(fontName, ConvertFontInt(model.SpeedFontSize)), bush, ConvertInt(model.SpeedFontX), ConvertInt(model.SpeedFontY));

                g.DrawLine(new System.Drawing.Pen(bush), new System.Drawing.Point(ConvertInt(model.Split3X), ConvertInt(model.Split3Y)), new System.Drawing.Point(ConvertInt(model.Split3X + model.Split3Width), ConvertInt(model.Split3Y)));

                g.DrawString("审核:焦媛媛", new Font(fontName, ConvertFontInt(model.ExamineFontSize), System.Drawing.FontStyle.Bold), bush, ConvertInt(model.ExamineFontX), ConvertInt(model.ExamineFontY));
                g.DrawString("复审:", new Font(fontName, ConvertFontInt(model.ReviewFontSize), System.Drawing.FontStyle.Bold), bush, ConvertInt(model.ReviewFontX), ConvertInt(model.ReviewFontY));
                g.DrawString("排药:牛捷", new Font(fontName, ConvertFontInt(model.SortFontSize), System.Drawing.FontStyle.Bold), bush, ConvertInt(model.SortFontX), ConvertInt(model.SortFontY));
                g.DrawString("配液:", new Font(fontName, ConvertFontInt(model.DispensingFontSize), System.Drawing.FontStyle.Bold), bush, ConvertInt(model.DispensingFontX), ConvertInt(model.DispensingFontY));
                g.DrawString("配液:___时___分", new Font(fontName, ConvertFontInt(model.DispensingDateFontSize), System.Drawing.FontStyle.Bold), bush, ConvertInt(model.DispensingDateFontX), ConvertInt(model.DispensingDateFontY));


                //image.Save(AppDomain.CurrentDomain.BaseDirectory + @"Config\test" + DateTime.Now.Millisecond + ".jpg");

                IntPtr       myImagePtr = image.GetHbitmap();                                                                                                                           //创建GDI对象,返回指针
                BitmapSource imgsource  = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(myImagePtr, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()); //创建imgSource

                DeleteObject(myImagePtr);

                imgTest.Source = imgsource;

                //var fileName = Guid.NewGuid().ToString();
                //var path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config", fileName + ".jpg");
                //var pathTarget = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config", fileName + "-bak.jpg");
                //image.Save(path);

                //ImageHelper.KiSaveAsJPEG(image,pathTarget, 20);

                //ZebraImageI imageI = ZebraImageFactory.GetImage(image);
                //myEventLog.LogInfo($"画图花费时间:{(DateTime.Now - startTime).TotalMilliseconds}");
                //startTime = DateTime.Now;
                //printer.PrintImage(imageI, 0, 0, paperWidth, paperHeight, false);
                //myEventLog.LogInfo($"发送打印内容花费时间:{(DateTime.Now - startTime).TotalMilliseconds}");
            }
            finally
            {
                g.Dispose();
                image.Dispose();
            }
        }
Exemple #4
0
        private string GetCommand()
        {
            PrintTemplateModel model = new PrintTemplateHelper().GetConfig();

            StringBuilder         sb           = new StringBuilder();
            var                   orderManager = new OrderManager();
            var                   order        = orderManager.FirstOrDefault(s => true);
            List <PrintDrugModel> drugs        = orderManager.GetPrintDrugs(order.Id);


            //            var command = $@"^XA
            //^CI17
            //^A@N,60,60,E:000.FNT^F8^FD1一二三四五六七八九十This is a test.^FS
            //^XZ";
            sb.Append("^XA");
            sb.Append("^CWJ,E:001.FNT^FS");
            //sb.Append("^A@N,60,60,E:000.FNT^F8^FD1一二三四五六七八九十This is a test.^FS");
            sb.Append(GetBarCodeCommand(order.barcode, model.BarCodeX, model.BarCodeY));
            //g.DrawImage(bmp, ConvertInt(model.BarCodeX), ConvertInt(model.BarCodeY), ConvertInt(model.BarCodeWidth), ConvertInt(model.BarCodeHeight));
            sb.Append(GetLabelCommand(order.patient_name, model.AreaFontSize, model.AreaFontX, model.AreaFontY));
            sb.Append(GetLabelCommand(order.use_date, model.DateFontSize, model.DateFontX, model.DateFontY));
            sb.Append(GetLabelCommand("1/1", model.PageNumFontSize, model.PageNumFontX, model.PageNumFontY));
            sb.Append(GetLabelCommand("——————————————————————————", model.DrugsTitleFontSize, 0, model.SplitY - 5));
            sb.Append(GetLabelCommand(order.group_num, model.DoctorAdviceFontSize, model.DoctorAdviceFontX, model.DoctorAdviceFontY));
            sb.Append(GetLabelCommand(order.bed_number, model.BedFontSize, model.BedFontX, model.BedFontY));
            sb.Append(GetLabelCommand(order.patient_name, model.PatientFontSize, model.PatientFontX, model.PatientFontY));
            sb.Append(GetLabelCommand("男", model.GenderFontSize, model.GenderFontX, model.GenderFontY));
            sb.Append(GetLabelCommand(order.batch, model.BatchNumberFontSize, model.BatchNumberFontX, model.BatchNumberFontY));
            sb.Append(GetLabelCommand(order.zone?.ToString(), model.SerialNumberFontSize, model.SerialNumberFontX, model.SerialNumberFontY));
            //g.DrawLine(new System.Drawing.Pen(bush), new System.Drawing.Point(ConvertInt(model.Split2X), ConvertInt(model.Split2Y)), new System.Drawing.Point(ConvertInt(model.Split2X + model.Split2Width), ConvertInt(model.Split2Y)));
            sb.Append(GetLabelCommand("——————————————————————————", model.DrugsTitleFontSize, 0, model.Split2Y - 5));
            sb.Append(GetLabelCommand("药品名称", model.DrugsTitleFontSize, model.DrugsTitleFontX, model.DrugsTitleFontY));
            sb.Append(GetLabelCommand("数量", model.UseTitleFontSize, model.UseTitleFontX, model.UseTitleFontY));

            //g.DrawLine(new System.Drawing.Pen(bush), new System.Drawing.Point(ConvertInt(model.SplitX), ConvertInt(model.SplitY)), new System.Drawing.Point(ConvertInt(model.SplitX + model.SplitWidth), ConvertInt(model.SplitY)));
            //int x = model.DrugsContentFontX;
            //int y = model.DrugsContentFontY;
            //int u_x = model.UseValueFontX;
            //int u_y = model.UseValueFontY;
            var margin      = 10;
            var height      = model.DrugsContentFontY + margin;
            var paperWidth  = model.PageWidth;
            var paperHeight = model.PageHeight;

            #region 药品列表
            // 药品信息
            for (int i = 0; i < drugs.Count; i++)
            {
                int fontHeight = model.DrugsContentFontSize;
                // 药名
                sb.Append(GetLabelCommand(drugs[i].drug_name, model.DrugsContentFontSize, model.DrugsContentFontX, height));
                //数量
                sb.Append(GetLabelCommand(drugs[i].use_count.TrimEnd('0'), model.DrugsContentFontSize, model.PageWidth - 80, height));

                // 只修改Y轴,向下平铺
                height += model.DrugsContentFontSize + margin;
            }
            #endregion

            sb.Append(GetLabelCommand($"处方医生:{order.doctor_name}", model.DoctorFontSize, model.DoctorFontX, model.DoctorFontY));
            sb.Append(GetLabelCommand($"备注:{order.pass_remark}", model.RemarkFontSize, model.RemarkFontX, model.RemarkFontY));
            sb.Append(GetLabelCommand($"滴速:{order.ml_speed}   {order.usage_name}   {order.use_frequency}({order.use_time})", model.SpeedFontSize, model.SpeedFontX, model.SpeedFontY));

            //g.DrawLine(new System.Drawing.Pen(bush), new System.Drawing.Point(ConvertInt(model.Split3X), ConvertInt(model.Split3Y)), new System.Drawing.Point(ConvertInt(model.Split3X + model.Split3Width), ConvertInt(model.Split3Y)));

            sb.Append(GetLabelCommand("——————————————————————————", model.DrugsTitleFontSize, 0, model.Split3Y - 5));
            sb.Append(GetLabelCommand($"审核:{order.checker}", model.ExamineFontSize, model.ExamineFontX, model.ExamineFontY));
            sb.Append(GetLabelCommand($"复审:", model.ReviewFontSize, model.ReviewFontX, model.ReviewFontY));
            sb.Append(GetLabelCommand($"排药:{order.deliveryer}", model.SortFontSize, model.SortFontX, model.SortFontY));
            sb.Append(GetLabelCommand($"配液:{order.config_person}", model.DispensingFontSize, model.DispensingFontX, model.DispensingFontY));
            sb.Append(GetLabelCommand($"配液:___时___分", model.DispensingDateFontSize, model.DispensingDateFontX, model.DispensingDateFontY));

            sb.Append("^XZ");

            return(sb.ToString());
        }