/// <summary> /// 爱婴区婴儿评估表-特殊记录 /// </summary> /// <param name="e"></param> private void m_mthPrintAYQBabyEspRecord(PrintPageEventArgs e) { System.Drawing.Graphics p_objGrp = e.Graphics; com.digitalwave.controls.clsPrintRichTextContext m_objPrintContext = new com.digitalwave.controls.clsPrintRichTextContext(Color.Black, m_fontBody); RectangleF m_rtgF = new RectangleF((float)m_objPrintSize.LeftX + 20, m_intPosY, m_intPrintWidth, m_intRowHeight); // 打印格式 StringFormat m_strFormat = new StringFormat(); m_strFormat.LineAlignment = StringAlignment.Center; m_strFormat.Alignment = StringAlignment.Near; p_objGrp.DrawString("特殊记录", m_fontBody, m_objBrush, m_rtgF, m_strFormat); m_intPosY += m_intRowHeight; if (m_objPrintMainInfo == null || m_objPrintMainInfo.m_objAYQEspRecord == null) { return; } m_objPrintContext.m_mthSetContextWithCorrectBefore(m_objPrintMainInfo.m_objAYQEspRecord.m_strEspRecord, m_objPrintMainInfo.m_objAYQEspRecord.m_strEspRecordXML, DateTime.Now); int m_intRealHeight = m_objPrintContext.m_intMeasureBlockHeightBySimSun(m_fontBody.Size, m_intPrintWidth - 50, p_objGrp); if (m_intPosY + m_intRealHeight > m_intPrintHeight + (int)m_objPrintSize.TopY) { e.HasMorePages = true; // 打印页脚 m_mthPrintFoot(e); return; } Rectangle m_rtg = new Rectangle((int)m_objPrintSize.LeftX + 50, m_intPosY, m_intPrintWidth - 50, m_intRowHeight); m_objPrintContext.m_blnPrintAllBySimSun(m_fontBody.Size, m_rtg, p_objGrp, out m_intRealHeight, false); if (m_intRealHeight > m_intRowHeight) { m_intPosY += m_intRealHeight; } else { m_intPosY += m_intRowHeight; } // 打印页脚 m_mthPrintFoot(e); m_strFormat.Dispose(); e.HasMorePages = false; }
/// <summary> /// 初始化打印变量,本例传入空对象即可. /// </summary> public void m_mthInitPrintTool(object p_objArg) { m_fotTitleFont = new Font("SimSun", 20, FontStyle.Bold); m_fotHeaderFont = new Font("SimSun", 18); m_fotSmallFont = new Font("SimSun", 12); m_GridPen = new Pen(Color.Black, 1); m_slbBrush = new SolidBrush(Color.Black); m_objPageSetting = new clsPrintPageSettingForRecord(); m_objPrintContext = new com.digitalwave.controls.clsPrintRichTextContext(Color.Black, m_fotSmallFont); intCurrentRecord = 0; intNowPage = 0; blnBeginPrintNewRecord = true; }
public clsPrintLine1() { m_objDiagnose = new com.digitalwave.controls.clsPrintRichTextContext(Color.Black, new Font("SimSun", 12)); }
/// <summary> /// 打印催产素静脉点滴情况 /// </summary> /// <param name="e"></param> private void m_mthPrintOxtInfoDetal(PrintPageEventArgs e) { if (m_objReturnData.Count <= 0) { return; } m_objPrintContext = new com.digitalwave.controls.clsPrintRichTextContext(Color.Black, m_fontInBody); // 当前页可以打印的行数 m_intRowCount = Convert.ToInt32((e.PageBounds.Height - (int)m_objPrintSize.BottomY - m_intPosY) / m_intRowHeight); // 因为留出一行位置来打印页脚 ,所以显示总行数为减1 m_intRowCount--; System.Drawing.Graphics g = e.Graphics; clsDSTRichTextBoxValue m_objDSTBoxValue; RectangleF m_rtf = new RectangleF(); Rectangle m_rtg = new Rectangle(); int m_intRealHeight; StringFormat m_sf = new StringFormat(); m_sf.LineAlignment = StringAlignment.Center; m_sf.Alignment = StringAlignment.Center; int i = 0; m_intPrintedCounts += m_intRowCount; for (; i < m_intRowCount && i < m_objReturnData.Count; i++) { m_rtf.Y = m_intPosY; m_rtf.Height = m_intRowHeight; object[] m_objData = (object[])m_objReturnData[i]; for (int index = 0; index < m_floatColLeftX.Length; index++) { m_rtf.X = m_floatColLeftX[index]; m_rtf.Width = m_floatColWidth[index]; if (m_objData[index].GetType().Name == "clsDSTRichTextBoxValue") { m_rtg.X = Convert.ToInt32(m_rtf.X); m_rtg.Y = Convert.ToInt32(m_rtf.Y); m_rtg.Height = Convert.ToInt32(m_rtf.Height); m_rtg.Width = Convert.ToInt32(m_rtf.Width); m_objDSTBoxValue = (clsDSTRichTextBoxValue)m_objData[index]; if (m_objDSTBoxValue != null) { m_objPrintContext.m_mthSetContextWithCorrectBefore(m_objDSTBoxValue.m_strText, m_objDSTBoxValue.m_strDSTXml, DateTime.Now); m_objPrintContext.m_blnPrintInBlock(m_fontInBody.Name, m_fontInBody.Size, m_rtg, g, false, out m_intRealHeight, false, true); } } else { g.DrawString(Convert.ToString(m_objData[index]), m_fontInBody, m_objBrush, m_rtf, m_sf); } g.DrawLine(m_objPen, m_floatColLeftX[index], m_intPosY, m_floatColLeftX[index], m_intPosY + m_intRowHeight); } g.DrawLine(m_objPen, m_floatColLeftX[m_floatColLeftX.Length - 1] + m_floatColWidth[m_floatColWidth.Length - 1], m_intPosY, m_floatColLeftX[m_floatColLeftX.Length - 1] + m_floatColWidth[m_floatColWidth.Length - 1], m_intPosY + m_intRowHeight); m_intPosY += Convert.ToInt32(m_intRowHeight); g.DrawLine(m_objPen, m_floatColLeftX[0], m_intPosY, m_floatColLeftX[m_floatColLeftX.Length - 1] + m_floatColWidth[m_floatColWidth.Length - 1], m_intPosY); } m_mthPrintFoot(e); //判断是否多页 if (i < this.m_objReturnData.Count) { m_intCurrentPageIndex++; e.HasMorePages = true; m_intPosY = (int)m_objPrintSize.TopY; return; } }
/// <summary> /// 打印催产素静脉点滴概况 /// </summary> /// <param name="e"></param> private void m_mthPrintOxInfo(PrintPageEventArgs e) { System.Drawing.Graphics p_objGrp = e.Graphics; com.digitalwave.controls.clsPrintRichTextContext m_objPrintContext = new com.digitalwave.controls.clsPrintRichTextContext(Color.Black, m_fontBody); RectangleF m_rtgF = new RectangleF(); // 打印格式 StringFormat m_strFormat = new StringFormat(); m_strFormat.LineAlignment = StringAlignment.Center; m_strFormat.Alignment = StringAlignment.Near; int m_intRowHeight = 30; int m_intRowWidth = m_intPrintWidth / 2; if (m_blnIsFirstPrint) { // 先打印固定内容 m_rtgF.X = (float)m_objPrintSize.LeftX; m_rtgF.Y = (float)m_intPosY; m_rtgF.Width = m_intRowWidth; m_rtgF.Height = m_intRowHeight; p_objGrp.DrawString(" 催产素静脉点滴情况:", m_fontBody, m_objBrush, m_rtgF, m_strFormat); m_rtgF.X = (float)m_objPrintSize.LeftX + m_intRowWidth; p_objGrp.DrawString(" 孕/产:", m_fontBody, m_objBrush, m_rtgF, m_strFormat); m_rtgF.X = (float)m_objPrintSize.LeftX; m_rtgF.Y = (float)m_intPosY + m_intRowHeight; p_objGrp.DrawString(" 静滴催产素指征:", m_fontBody, m_objBrush, m_rtgF, m_strFormat); m_rtgF.X = (float)m_objPrintSize.LeftX + m_intRowWidth; p_objGrp.DrawString(" 孕周:", m_fontBody, m_objBrush, m_rtgF, m_strFormat); } if (m_objPrintMainInfo != null && m_objPrintMainInfo.m_objBaseInfo != null) { Rectangle m_rtg = new Rectangle(); m_objPrintContext.m_mthSetContextWithCorrectBefore(m_objPrintMainInfo.m_objBaseInfo.m_strOXTINTRAVENOUSDRIPINFO, m_objPrintMainInfo.m_objBaseInfo.m_strOXTINTRAVENOUSDRIPINFOXML, m_objPrintMainInfo.m_objBaseInfo.m_dtmFirstPrintDate); int m_intWidth; m_intWidth = Convert.ToInt32(p_objGrp.MeasureString(" 催产素静脉点滴情况:", m_fontBody).Width); m_rtg.X = (int)m_objPrintSize.LeftX + m_intWidth + 10; m_rtg.Y = m_intPosY; m_rtg.Width = m_intRowWidth - m_intWidth; m_rtg.Height = m_intRowHeight; m_objPrintContext.m_mthPrintText(m_objPrintMainInfo.m_objBaseInfo.m_strOXTINTRAVENOUSDRIPINFO, m_objPrintMainInfo.m_objBaseInfo.m_strOXTINTRAVENOUSDRIPINFOXML, m_fontBody, Color.Black, m_rtg, p_objGrp); m_intWidth = Convert.ToInt32(p_objGrp.MeasureString(" 孕/产:", m_fontBody).Width); m_rtg.X = (int)m_objPrintSize.LeftX + m_intRowWidth + m_intWidth + 10; m_rtg.Width = m_intRowWidth - m_intWidth; m_objPrintContext.m_mthPrintText(m_objPrintMainInfo.m_objBaseInfo.m_strLAYCOUNT_CHR, m_objPrintMainInfo.m_objBaseInfo.m_strLAYCOUNT_CHRXML, m_fontBody, Color.Black, m_rtg, p_objGrp); m_intWidth = Convert.ToInt32(p_objGrp.MeasureString(" 静滴催产素指征:", m_fontBody).Width); m_rtg.X = (int)m_objPrintSize.LeftX + m_intWidth + 10; m_rtg.Width = m_intRowWidth - m_intWidth; m_rtg.Y = m_intPosY + m_intRowHeight; m_objPrintContext.m_mthPrintText(m_objPrintMainInfo.m_objBaseInfo.m_strOXTINDICATION, m_objPrintMainInfo.m_objBaseInfo.m_strOXTINDICATIONXML, m_fontBody, Color.Black, m_rtg, p_objGrp); m_intWidth = Convert.ToInt32(p_objGrp.MeasureString(" 孕周:", m_fontBody).Width); m_rtg.X = (int)m_objPrintSize.LeftX + m_intRowWidth + m_intWidth + 10; m_rtg.Width = m_intRowWidth - m_intWidth; m_objPrintContext.m_mthPrintText(m_objPrintMainInfo.m_objBaseInfo.m_strGESTATIONALPERIOD, m_objPrintMainInfo.m_objBaseInfo.m_strGESTATIONALPERIODXML, m_fontBody, Color.Black, m_rtg, p_objGrp); } m_intPosY += 2 * m_intRowHeight; }