连接转载自houzf
分页打印
using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Drawing.Printing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BarcodeLib;
using DataView;
using OpdCommon;
using DataModel;
namespace RegPrint
{
public class Bill_Charge_QJRMYY
{
#region 参数设置
//纸张大小
private int m_douWidth = 472;//447; //纸张宽度
//private int m_douHeight = 800;//742; //纸张高度
//打印区域
/// <summary>
/// 起始X坐标
/// </summary>
private int m_douPrintLeft = 15;// Global._PrintSet.FpX; //左边距
/// <summary>
/// 起始Y坐标
/// </summary>
private int m_douPrintRight = 0; //右边距
private int m_douPrintTop = 0;//+ Global._PrintSet.FpY; //15 + Global._PrintSet.FpY; //上边距
private int m_douPrintBottom = 0; //下边距
private int leftTwoWords = 11; //空2字的距离
private Font m_font_st_16_bold = new Font("宋体", 16, FontStyle.Bold); //样式
private Font m_font_st_14_bold = new Font("宋体", 14, FontStyle.Bold); //样式
private Font m_font_st_12_bold = new Font("宋体", 12, FontStyle.Bold); //样式
private Font m_font_st_10_Regular = new Font("宋体", 10, FontStyle.Regular); //样式
private Font m_font_st_8_Regular = new Font("宋体", 8, FontStyle.Regular); //样式
private Font m_font_st_9_bold = new Font("宋体", 9, FontStyle.Bold); //样式
private Font m_font_st_10_bold = new Font("宋体", 10, FontStyle.Bold); //样式
private Font m_font_ht_18_bold = new Font("黑体", 18, FontStyle.Bold); //样式
private Font m_font_ht_12_bold = new Font("黑体", 12, FontStyle.Bold); //样式
private int m_intHeadHeight = 0; //字体高度
private double m_douHeadWidth = 0; //高度
private Pen m_penHead = new Pen(Brushes.Black, (float)0.2);
private Pen m_penBody = new Pen(Brushes.Black, 1); //打印表格线格式
//条形字体
private Font m_fonBarcode = new Font("3 of 9 barcode", 20, FontStyle.Regular); //样式
private PrintDocument m_pdoPrint; //打印文档类
private SolidBrush m_sbrDraw = new SolidBrush(System.Drawing.Color.Black); //当前画笔颜色
#endregion
Bill_Register_QJRMYY _Bill_Register_KHRMYY = new Bill_Register_QJRMYY();
private bool _isBd = false;
private k_pafpaid _RegInfo;
private static List<PdrugNo> pdrugInfo = null;
private static List<OPfee> _fee = null;
private static List<code213> _Code213 = null;
private static pmain paint = null;
private class TypeInfo
{
public string type { get; set; }
public string name { get; set; }
}
private static List<TypeInfo> typeInfoList = new List<TypeInfo>() {
new TypeInfo() { type = "D", name = "西药费" },
new TypeInfo() { type = "Y", name = "成药费" },
new TypeInfo() { type = "Z", name = "中药费" },
new TypeInfo() { type = "L", name = "检验费" },
new TypeInfo() { type = "NOL", name = "检查费" },
new TypeInfo() { type = "NSC", name = "治疗处置" } };
public string DeptId = "";
public string Empid = "";
public void PrintCharge(k_pafpaid RegInfo, List<OPfee> fee, bool isBd)
{
_RegInfo = RegInfo;
_isBd = isBd;
_Code213 = dataCode213.GetData();
fee.Sort();
_fee = fee;
string _msg = "";
pdrugInfo = dataPdrugno.GetFbidData(_RegInfo.mrn.ToString(), _RegInfo.series.ToString(), _RegInfo.fbid.ToString());
paint = dataPmain.GetPmainByMrn("<MRN>" + _RegInfo.mrn.ToString() + "</MRN>", ref _msg);
foreach (OPfee mx in _fee)
{
if (!string.IsNullOrEmpty(mx.dr) && string.IsNullOrEmpty(Empid) && Empid != "0")
{
Empid = mx.dr.Trim();
}
if (!string.IsNullOrEmpty(mx.cdept) && string.IsNullOrEmpty(DeptId) && DeptId != "0")
{
DeptId = mx.cdept.Trim();
}
}
string strMsg = "";
try
{
//PrintDocument pd = new PrintDocument();
//Margins margin = new Margins(20, 20, 20, 20);
//pd.DefaultPageSettings.Margins = margin;
//string xpPrintName = "Microsoft XPS Document Writer";
//xpPrintName = Global._PrintSet.Ptdy;
//if (xpPrintName != "")
//{
// pd.PrinterSettings.PrinterName = xpPrintName;
//}
//PrintDialog MySettings = new PrintDialog();
//MySettings.Document = pd;
//PaperSize pageSize = null;
foreach (PaperSize ps in MySettings.Document.PrinterSettings.PaperSizes)
{
if (ps.PaperName.Equals("A5"))
pageSize = ps;
}
pd.DefaultPageSettings.PaperSize = pageSize;
//int width = (int)(148 / 25.4 * 100);
//int height = (int)(210 / 25.4 * 100);
//pageSize = new PaperSize("Custom", width, height);//210mmx148mm
//pd.DefaultPageSettings.PaperSize = pageSize;
//pd.PrintPage += new PrintPageEventHandler(this.PrintDrawFp);
PrintPreviewDialog pageViewpDialog = new PrintPreviewDialog();
pageViewpDialog.Document = pd;
//显示打印预览
DialogResult result = pageViewpDialog.ShowDialog();
//pd.Print();
m_pdoPrint = new PrintDocument();
string xpPrintName = "Microsoft XPS Document Writer";
//xpPrintName = Global._PrintSet.Ptdy;
if (xpPrintName != "")
{
m_pdoPrint.PrinterSettings.PrinterName = xpPrintName;
}
m_pdoPrint.DefaultPageSettings.Landscape = false;
m_pdoPrint.PrintPage += PrintDrawFp;
int y = 500 + 14* _fee.Count;
m_pdoPrint.DefaultPageSettings.PaperSize = new PaperSize("Custom", 410, y);
PageSetupDialog psdPrint = default(PageSetupDialog);
psdPrint = new PageSetupDialog();
psdPrint.Document = m_pdoPrint;
PrintController pr = new StandardPrintController();
m_pdoPrint.DefaultPageSettings = psdPrint.PageSettings;
m_pdoPrint.DocumentName = "缴费凭据";
m_pdoPrint.PrintController = pr;
m_pdoPrint.Print();
}
catch (Exception ex)
{
strMsg = ex.Message;
}
}
/// <summary>
/// 打印的格式
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
///
private void PrintDrawFp(object sender, PrintPageEventArgs ppeDraw)
{
StringFormat sfoDraw = new StringFormat();
sfoDraw.LineAlignment = StringAlignment.Center;//居中对齐
sfoDraw.FormatFlags = StringFormatFlags.LineLimit;//自动换行
Rectangle recDraw = new Rectangle();//打印区域
ppeDraw.Graphics.PageUnit = GraphicsUnit.Millimeter;
string strTemp = "";
int intTemp = 0;
int intervalHight = 6; //行间距
m_douPrintTop = m_douPrintTop + intervalHight;
//医院名称
strTemp = Global._LogInfo.loginHospitalNm;
if (string.IsNullOrEmpty(strTemp)) strTemp = "衢州市第二人民医院";
intTemp = (int)Math.Ceiling(ppeDraw.Graphics.MeasureString(strTemp, m_font_st_14_bold).Width);
sfoDraw.Alignment = StringAlignment.Near;
recDraw.Width = intTemp;
m_intHeadHeight = (int)Math.Ceiling(m_font_st_14_bold.GetHeight(ppeDraw.Graphics));
recDraw.Height = m_intHeadHeight;
recDraw.X = m_douPrintLeft + 12;
recDraw.Y = m_douPrintTop;
ppeDraw.Graphics.DrawString(strTemp, m_font_st_14_bold, m_sbrDraw, recDraw, sfoDraw);
// 缴费凭证
m_douPrintTop = m_douPrintTop + m_intHeadHeight;
if (_isBd) { strTemp = "缴费凭证(补)"; recDraw.X = m_douPrintLeft + 14; }
else { strTemp = "缴费凭证"; recDraw.X = m_douPrintLeft + 17; }
intTemp = (int)Math.Ceiling(ppeDraw.Graphics.MeasureString(strTemp, m_font_st_14_bold).Width);
sfoDraw.Alignment = StringAlignment.Near;
recDraw.Width = intTemp;
m_intHeadHeight = (int)Math.Ceiling(m_font_st_14_bold.GetHeight(ppeDraw.Graphics));
recDraw.Height = m_intHeadHeight;
recDraw.Y = m_douPrintTop;
ppeDraw.Graphics.DrawString(strTemp, m_font_st_14_bold, m_sbrDraw, recDraw, sfoDraw);
if (!string.IsNullOrEmpty(_RegInfo.mrn.ToString()))
{
m_douPrintTop = m_douPrintTop + m_intHeadHeight;
Image img = Global.CreateBarCode(_RegInfo.mrn.ToString(), "");
ppeDraw.Graphics.DrawImage(img, m_douPrintLeft + 5, m_douPrintTop, 50, 10);//135,7,30,8--条码图
m_intHeadHeight = 10;
}
//病历号:12312321
m_douPrintTop = m_douPrintTop + m_intHeadHeight + 5;
strTemp = "病历号:" + _RegInfo.mrn.ToString();
intTemp = (int)Math.Ceiling(ppeDraw.Graphics.MeasureString(strTemp, m_font_st_10_Regular).Width);
sfoDraw.Alignment = StringAlignment.Near;
recDraw.Width = intTemp;
m_intHeadHeight = (int)Math.Ceiling(m_font_st_10_Regular.GetHeight(ppeDraw.Graphics));
recDraw.Height = m_intHeadHeight;
recDraw.X = m_douPrintLeft;
recDraw.Y = m_douPrintTop;
ppeDraw.Graphics.DrawString(strTemp, m_font_st_10_Regular, m_sbrDraw, recDraw, sfoDraw);
//病人姓名:111111
m_douPrintTop = m_douPrintTop + m_intHeadHeight;
strTemp = "姓名:" + _RegInfo.pname;
intTemp = (int)Math.Ceiling(ppeDraw.Graphics.MeasureString(strTemp, m_font_st_10_Regular).Width);
sfoDraw.Alignment = StringAlignment.Near;
recDraw.Width = intTemp;
m_intHeadHeight = (int)Math.Ceiling(m_font_st_10_Regular.GetHeight(ppeDraw.Graphics));
recDraw.Height = m_intHeadHeight;
recDraw.X = m_douPrintLeft;
recDraw.Y = m_douPrintTop;
ppeDraw.Graphics.DrawString(strTemp, m_font_st_10_Regular, m_sbrDraw, recDraw, sfoDraw);
//缴费时间:2017-01-01
m_douPrintTop = m_douPrintTop + m_intHeadHeight;
strTemp = "缴费时间:" + DateTime.Parse(_RegInfo.padate.ToString()).ToString("yyyy-MM-dd HH:mm:ss");
intTemp = (int)Math.Ceiling(ppeDraw.Graphics.MeasureString(strTemp, m_font_st_10_Regular).Width);
sfoDraw.Alignment = StringAlignment.Near;
recDraw.Width = intTemp;
m_intHeadHeight = (int)Math.Ceiling(m_font_st_10_Regular.GetHeight(ppeDraw.Graphics));
recDraw.Height = m_intHeadHeight;
recDraw.X = m_douPrintLeft;
recDraw.Y = m_douPrintTop;
ppeDraw.Graphics.DrawString(strTemp, m_font_st_10_Regular, m_sbrDraw, recDraw, sfoDraw);
//就诊科室:挂号科室
m_douPrintTop = m_douPrintTop + m_intHeadHeight;
strTemp = "就诊科室:" + dataDept.getDeptNameById(DeptId);
intTemp = (int)Math.Ceiling(ppeDraw.Graphics.MeasureString(strTemp, m_font_st_10_Regular).Width);
sfoDraw.Alignment = StringAlignment.Near;
recDraw.Width = intTemp;
m_intHeadHeight = (int)Math.Ceiling(m_font_st_10_Regular.GetHeight(ppeDraw.Graphics));
recDraw.Height = m_intHeadHeight;
recDraw.X = m_douPrintLeft;
recDraw.Y = m_douPrintTop;
ppeDraw.Graphics.DrawString(strTemp, m_font_st_10_Regular, m_sbrDraw, recDraw, sfoDraw);
//就诊医生:就诊医生
m_douPrintTop = m_douPrintTop + m_intHeadHeight;
strTemp = "就诊医生:" + dataEmp.GetEmpNm(Empid);
intTemp = (int)Math.Ceiling(ppeDraw.Graphics.MeasureString(strTemp, m_font_st_10_Regular).Width);
sfoDraw.Alignment = StringAlignment.Near;
recDraw.Width = intTemp;
m_intHeadHeight = (int)Math.Ceiling(m_font_st_10_Regular.GetHeight(ppeDraw.Graphics));
recDraw.Height = m_intHeadHeight;
recDraw.X = m_douPrintLeft;
recDraw.Y = m_douPrintTop;
ppeDraw.Graphics.DrawString(strTemp, m_font_st_10_Regular, m_sbrDraw, recDraw, sfoDraw);
//以下为费用明细
m_douPrintTop = m_douPrintTop + 7;
strTemp = "以下为费用明细";
intTemp = (int)Math.Ceiling(ppeDraw.Graphics.MeasureString(strTemp, m_font_st_10_bold).Width);
sfoDraw.Alignment = StringAlignment.Near;
recDraw.Width = intTemp;
m_intHeadHeight = (int)Math.Ceiling(m_font_st_10_bold.GetHeight(ppeDraw.Graphics));
recDraw.Height = m_intHeadHeight;
recDraw.X = m_douPrintLeft;
recDraw.Y = m_douPrintTop;
ppeDraw.Graphics.DrawString(strTemp, m_font_st_10_bold, m_sbrDraw, recDraw, sfoDraw);
//费用明
for (int i = 0; i < _fee.Count; i++)
{
OPfee opf = new OPfee();
opf = _fee[i];
#region 处理明细
//if (_ftype != opf.ftype)
//{
// _Gstep++;
// //费用类别 *************
// strTemp = "[" + opf.ftype + "]" + GetFeeNmByCode(opf.ftype).Rows[0]["remark"].ToString();
// intTemp = (int)Math.Ceiling(ppeDraw.Graphics.MeasureString(strTemp, m_font_st_10_bold).Width);
// sfoDraw.Alignment = StringAlignment.Near;
// recDraw.Width = intTemp;
// m_intHeadHeight = (int)Math.Ceiling(m_font_st_10_bold.GetHeight(ppeDraw.Graphics));
// recDraw.Height = m_intHeadHeight;
// if (string.IsNullOrEmpty(_ftype))//第一次循环时距离头部
// {
// recDraw.X = m_douPrintLeft;
// recDraw.Y += 12;
// }
// else
// {
// recDraw.X = m_douPrintLeft;
// recDraw.Y += 4;
// }
// ppeDraw.Graphics.DrawString(strTemp, m_font_st_10_bold, m_sbrDraw, recDraw, sfoDraw);
// _ftype = opf.ftype;
//}
string sFeeName = "";
Global.CutString(opf.remark.Trim(), 24, 2, 1, "...", out sFeeName);
m_douPrintTop = m_douPrintTop + m_intHeadHeight;
string sl = "";
//数量 *************
if (opf.orderflag == "D" || opf.orderflag == "Z" || opf.orderflag == "Y")
{
sl = decimal.Parse((opf.many / opf.oppack).ToString()).ToString("f2") + " ";
}
else
{
sl = decimal.Parse(opf.many.ToString()).ToString("f2") + " ";
}
string dw = "";
//单位 *************
if (opf.orderflag == "D" || opf.orderflag == "Z" || opf.orderflag == "Y")
{
dw = dataCode213.GetRemark(opf.unit, _Code213);
}
else
{
dw = opf.unit + " ";
}
strTemp = sFeeName + " " + sl + " " + dw + " " + decimal.Parse(opf.fee.ToString()).ToString("f2") + "元";
intTemp = (int)Math.Ceiling(ppeDraw.Graphics.MeasureString(strTemp, m_font_st_8_Regular).Width);
sfoDraw.Alignment = StringAlignment.Near;
recDraw.Width = intTemp;
m_intHeadHeight = (int)Math.Ceiling(m_font_st_8_Regular.GetHeight(ppeDraw.Graphics));
recDraw.Height = m_intHeadHeight;
recDraw.X = m_douPrintLeft + 2;
recDraw.Y = m_douPrintTop;
ppeDraw.Graphics.DrawString(strTemp, m_font_st_8_Regular, m_sbrDraw, recDraw, sfoDraw);
#endregion
_fee.RemoveAt(i);
i--;
}
//总金额:总金额
m_douPrintTop = m_douPrintTop + m_intHeadHeight;
strTemp = "总金额:" + decimal.Parse(_RegInfo.patotal.ToString()).ToString("0.00") + "元";
intTemp = (int)Math.Ceiling(ppeDraw.Graphics.MeasureString(strTemp, m_font_st_10_Regular).Width);
sfoDraw.Alignment = StringAlignment.Near;
recDraw.Width = intTemp;
m_intHeadHeight = (int)Math.Ceiling(m_font_st_10_Regular.GetHeight(ppeDraw.Graphics));
recDraw.Height = m_intHeadHeight;
recDraw.X = m_douPrintLeft;
recDraw.Y = m_douPrintTop;
ppeDraw.Graphics.DrawString(strTemp, m_font_st_10_Regular, m_sbrDraw, recDraw, sfoDraw);
// 支付明细
m_douPrintTop = m_douPrintTop + m_intHeadHeight;
strTemp = "支付明细:";
intTemp = (int)Math.Ceiling(ppeDraw.Graphics.MeasureString(strTemp, m_font_st_10_Regular).Width);
sfoDraw.Alignment = StringAlignment.Near;
recDraw.Width = intTemp;
m_intHeadHeight = (int)Math.Ceiling(m_font_st_10_Regular.GetHeight(ppeDraw.Graphics));
recDraw.Height = m_intHeadHeight;
recDraw.X = m_douPrintLeft;
recDraw.Y = m_douPrintTop;
ppeDraw.Graphics.DrawString(strTemp, m_font_st_10_Regular, m_sbrDraw, recDraw, sfoDraw);
string insuType = dataCode200.GetInsuType(_RegInfo.service); // jklx.
//医保备注:医保备注
if (insuType == "10" || insuType == "60" || insuType == "40" || insuType == "84" || insuType == "85" || insuType == "86" || insuType == "87" || insuType == "88")
{
m_douPrintTop = m_douPrintTop + m_intHeadHeight;
strTemp = " " + _Bill_Register_KHRMYY.YbRemark(_RegInfo);
intTemp = (int)Math.Ceiling(ppeDraw.Graphics.MeasureString(strTemp, m_font_st_10_Regular).Width);
sfoDraw.Alignment = StringAlignment.Near;
recDraw.Width = intTemp;
m_intHeadHeight = (int)Math.Ceiling(m_font_st_10_Regular.GetHeight(ppeDraw.Graphics));
recDraw.Height = m_intHeadHeight;
recDraw.X = m_douPrintLeft;
recDraw.Y = m_douPrintTop;
ppeDraw.Graphics.DrawString(strTemp, m_font_st_10_Regular, m_sbrDraw, recDraw, sfoDraw);
}
//支付金额:支付金额
//if (!string.IsNullOrEmpty(_RegInfo.Paidtype))
//{
m_douPrintTop = m_douPrintTop + m_intHeadHeight;
strTemp = " " + _Bill_Register_KHRMYY.ZfRemark(_RegInfo);// +"元";
intTemp = (int)Math.Ceiling(ppeDraw.Graphics.MeasureString(strTemp, m_font_st_10_Regular).Width);
sfoDraw.Alignment = StringAlignment.Near;
recDraw.Width = intTemp;
m_intHeadHeight = (int)Math.Ceiling(m_font_st_10_Regular.GetHeight(ppeDraw.Graphics));
recDraw.Height = m_intHeadHeight;
recDraw.X = m_douPrintLeft;
recDraw.Y = m_douPrintTop;
ppeDraw.Graphics.DrawString(strTemp, m_font_st_10_Regular, m_sbrDraw, recDraw, sfoDraw);
//}
//decimal insufee = 0;
//decimal.TryParse(_RegInfo.InsuFee, out insufee);
//医保支付:医保支付
//if (!string.IsNullOrEmpty(_RegInfo.InsuFee) && insufee > 0)
//{
//m_douPrintTop = m_douPrintTop + m_intHeadHeight;
//strTemp = "医保:" + _RegInfo.InsuFee + "元";
//intTemp = (int)Math.Ceiling(ppeDraw.Graphics.MeasureString(strTemp, m_font_st_10_Regular).Width);
//sfoDraw.Alignment = StringAlignment.Near;
//recDraw.Width = intTemp;
//m_intHeadHeight = (int)Math.Ceiling(m_font_st_10_Regular.GetHeight(ppeDraw.Graphics));
//recDraw.Height = m_intHeadHeight;
//recDraw.X = m_douPrintLeft;
//recDraw.Y = m_douPrintTop;
//ppeDraw.Graphics.DrawString(strTemp, m_font_st_10_Regular, m_sbrDraw, recDraw, sfoDraw);
//}
//结算流水号:结算流水号
m_douPrintTop = m_douPrintTop + m_intHeadHeight;
strTemp = "结算流水号:" + _RegInfo.fbid.ToString();
intTemp = (int)Math.Ceiling(ppeDraw.Graphics.MeasureString(strTemp, m_font_st_10_Regular).Width);
sfoDraw.Alignment = StringAlignment.Near;
recDraw.Width = intTemp;
m_intHeadHeight = (int)Math.Ceiling(m_font_st_10_Regular.GetHeight(ppeDraw.Graphics));
recDraw.Height = m_intHeadHeight;
recDraw.X = m_douPrintLeft;
recDraw.Y = m_douPrintTop;
ppeDraw.Graphics.DrawString(strTemp, m_font_st_10_Regular, m_sbrDraw, recDraw, sfoDraw);
//终端号:终端号
//m_douPrintTop = m_douPrintTop + m_intHeadHeight;
//strTemp = "终端号:" + CommonInfo.localConfigs.MachineID;
//intTemp = (int)Math.Ceiling(ppeDraw.Graphics.MeasureString(strTemp, m_font_st_10_Regular).Width);
//sfoDraw.Alignment = StringAlignment.Near;
//recDraw.Width = intTemp;
//m_intHeadHeight = (int)Math.Ceiling(m_font_st_10_Regular.GetHeight(ppeDraw.Graphics));
//recDraw.Height = m_intHeadHeight;
//recDraw.X = m_douPrintLeft;
//recDraw.Y = m_douPrintTop;
//ppeDraw.Graphics.DrawString(strTemp, m_font_st_10_Regular, m_sbrDraw, recDraw, sfoDraw);
//机器流水号:机器流水号
//strTemp = "机器流水号:"+_regInfo.;
//intTemp = (int)Math.Ceiling(ppeDraw.Graphics.MeasureString(strTemp, m_font_st_10_Regular).Width);
//sfoDraw.Alignment = StringAlignment.Near;
//recDraw.Width = intTemp;
//m_intHeadHeight = (int)Math.Ceiling(m_font_st_10_Regular.GetHeight(ppeDraw.Graphics));
recDraw.Height = m_intHeadHeight;
//recDraw.X = m_douPrintLeft;
//recDraw.Y = m_douPrintTop;
//ppeDraw.Graphics.DrawString(strTemp, m_font_st_10_Regular, m_sbrDraw, recDraw, sfoDraw);
//打印时间:打印时间
m_douPrintTop = m_douPrintTop + m_intHeadHeight;
strTemp = "打印时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
intTemp = (int)Math.Ceiling(ppeDraw.Graphics.MeasureString(strTemp, m_font_st_10_Regular).Width);
sfoDraw.Alignment = StringAlignment.Near;
recDraw.Width = intTemp;
m_intHeadHeight = (int)Math.Ceiling(m_font_st_10_Regular.GetHeight(ppeDraw.Graphics));
recDraw.Height = m_intHeadHeight;
recDraw.X = m_douPrintLeft;
recDraw.Y = m_douPrintTop;
ppeDraw.Graphics.DrawString(strTemp, m_font_st_10_Regular, m_sbrDraw, recDraw, sfoDraw);
//取药窗口
//if (!string.IsNullOrEmpty(_RegInfo.PharmWindow))
//{
// m_douPrintTop = m_douPrintTop + m_intHeadHeight;
// strTemp = _RegInfo.PharmWindow;
// intTemp = (int)Math.Ceiling(ppeDraw.Graphics.MeasureString(strTemp, m_font_st_10_Regular).Width);
// sfoDraw.Alignment = StringAlignment.Near;
// recDraw.Width = intTemp;
// m_intHeadHeight = (int)Math.Ceiling(m_font_st_10_Regular.GetHeight(ppeDraw.Graphics));
// recDraw.Height = m_intHeadHeight;
// recDraw.X = m_douPrintLeft;
// recDraw.Y = m_douPrintTop;
// ppeDraw.Graphics.DrawString(strTemp, m_font_st_10_Regular, m_sbrDraw, recDraw, sfoDraw);
//}
#region 发药窗口
string Fyck = "";
if (pdrugInfo != null)
{
foreach (PdrugNo dr in pdrugInfo)
{
if (!string.IsNullOrEmpty(dr.state) && (dr.orderflag == "D" || dr.orderflag == "Y"))
{
Fyck = "请到西药窗口:";
Fyck += dr.pharmdept + dr.state;
Fyck += "取药";
}
else if (!string.IsNullOrEmpty(dr.state) && dr.orderflag == "Z")
{
Fyck = "请到中草药窗口:";
Fyck += dr.pharmdept + dr.state;
Fyck += "取药";
}
}
m_douPrintTop = m_douPrintTop + m_intHeadHeight;
strTemp = Fyck;
intTemp = (int)Math.Ceiling(ppeDraw.Graphics.MeasureString(strTemp, m_font_st_10_Regular).Width);
sfoDraw.Alignment = StringAlignment.Near;
recDraw.Width = intTemp;
m_intHeadHeight = (int)Math.Ceiling(m_font_st_10_Regular.GetHeight(ppeDraw.Graphics));
recDraw.Height = m_intHeadHeight;
recDraw.X = m_douPrintLeft;
recDraw.Y = m_douPrintTop;
ppeDraw.Graphics.DrawString(strTemp, m_font_st_10_Regular, m_sbrDraw, recDraw, sfoDraw);
}
#endregion
//备注
m_douPrintTop = m_douPrintTop + m_intHeadHeight;
strTemp = "如需发票,请凭此小票到窗口打印发票\r\n退费请到人工窗口办理";
intTemp = (int)Math.Ceiling(ppeDraw.Graphics.MeasureString(strTemp, m_font_st_10_Regular).Width);
sfoDraw.Alignment = StringAlignment.Near;
recDraw.Width = intTemp;
m_intHeadHeight = (int)Math.Ceiling(m_font_st_10_Regular.GetHeight(ppeDraw.Graphics)) * 2;
recDraw.Height = m_intHeadHeight;
recDraw.X = m_douPrintLeft;
recDraw.Y = m_douPrintTop;
ppeDraw.Graphics.DrawString(strTemp, m_font_st_10_Regular, m_sbrDraw, recDraw, sfoDraw);
//if (SelfCommons.CommonInfo.GetHosConfig(HosConfig.建档是否申请电子健康卡) == "1")
//{
// #region 二维码
// if (!string.IsNullOrEmpty(_RegInfo.Pcid))
// {
// HisGetStaticQr_OUT StaticQr_OUT = eCardB.GetStaticQr(SelfCommons.CommonInfo.GetHosConfig(HosConfig.电子健康卡地址).ToString(),
// _RegInfo.Pname, _RegInfo.Pcid, "A001");
// if (StaticQr_OUT != null)
// {
// m_douPrintTop = m_douPrintTop + m_intHeadHeight;
// Image i = Image.FromFile(StaticQr_OUT.qrcodeimage);
// Rectangle m = ppeDraw.MarginBounds;
// //if ((double)i.Width / (double)i.Height > (double)m.Width / (double)m.Height) // image is wider
// //{
// // m.Height = (int)((double)i.Height / (double)i.Width * (double)m.Width) * 2 / 3;
// //}
// //else
// //{
// // m.Width = (int)((double)i.Width / (double)i.Height * (double)m.Height) * 2 / 3;
// //}
// m.Height = 50;
// m.Width = 50;
// m.X = m_douPrintLeft;
// m.Y = m_douPrintTop;
// ppeDraw.Graphics.DrawImage(i, m);
// }
// }
// #endregion
//}
}
private string GetItemtypeToSelf(string sItemtypeNum)
{
string sItemtype = "";
switch (sItemtypeNum)
{
case "1": sItemtype = "诊疗项目"; break;
case "2": sItemtype = "材料"; break;
case "3": sItemtype = "西药"; break;
case "4": sItemtype = "中成药"; break;
case "5": sItemtype = "草药"; break;
}
return sItemtype;
}
private string SubStringStr(string str, int strLeng)
{
int i = 0;
int n = 0;
StringBuilder sb = new StringBuilder();
foreach (char ch in str)
{
i += Encoding.Default.GetBytes(ch.ToString()).Length;
if (i > strLeng)
{
n = strLeng - (i - Encoding.Default.GetBytes(ch.ToString()).Length);
while (n > 0)
{
sb.Append(' ');
n--;
}
break;
}
else
{
sb.Append(ch);
}
}
if (i < strLeng)
{
while (i < strLeng)
{
sb.Append(' ');
i++;
}
sb.Append(' ');
sb.Append(' ');
sb.Append(' ');
}
else
{
sb.Append('.');
sb.Append('.');
sb.Append('.');
}
return sb.ToString();
}
}
}