套打

来源:互联网 发布:mac发热严重怎么办 编辑:程序博客网 时间:2024/04/18 10:27

  private void printButton_Click(object sender, EventArgs e)
  {
   try
   {
    
    
    this.configFile=Application.StartupPath+"//Config1.xml";
    try
    {
     printFont = new Font("Arial", 10);
     PrintDocument pd = new PrintDocument();
     pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);
                    pd.Print();
    } 
    finally
    {
     //streamToPrint.Close();
     
    }
   } 
   catch(Exception ex)
   {
    //MessageBox.Show(ex.Message);
   }
  }

  // The PrintPage event is raised for each page to be printed.
  private void pd_PrintPage(object sender, PrintPageEventArgs ev)
  {

   int n=1;
   String drawString="";
   if(this.printDS.Tables.Count<=0)
   {
    //如果该表格为0 则从数据源复制表格
    this.printDS=ds.Copy();
   }
   
   for(int j=0;j<this.printDS.Tables[0].Rows.Count&&n<2;j++)
   {
    for(int i=1;i<this.printDS.Tables[0].Columns.Count;i++)
    {
     DataRow row=this.printDS.Tables[0].Rows[j];
     // Create string to draw.
     drawString = this.printDS.Tables[0].Rows[j][i].ToString();
     // Create font and brush.
     //Font drawFont = new Font("宋体", 14);
     Font drawFont=new Font(GetString("PointFont","family"),float.Parse(GetString("PointFont","size")));
     SolidBrush drawBrush = new SolidBrush(Color.Black);
     // Create point for upper-left corner of drawing.
     string tmp="Point"+i.ToString();
     float x = this.GetXPoint(tmp);
     float y = this.GetYPoint(tmp);
     // Set format of string.
     StringFormat drawFormat = new StringFormat();
     //drawFormat.FormatFlags = StringFormatFlags.DirectionRightToLeft;
     // Draw string to screen.
     ev.Graphics.DrawString(drawString, drawFont, drawBrush, x, y, drawFormat);
    }
       
    //去掉已打印的  
    n++;
    this.printDS.Tables[0].Rows.RemoveAt(j);  
//    j--;  


   }

 

  


   //判定是否已经打印完
   if(this.printDS.Tables[0].Rows.Count>0)
   {
    ev.HasMorePages=true;
   }
   else
   {
    //this.printDS.Tables[0].Rows.RemoveAt(this.printDS.Tables[0].Rows.Count);
    //删除该表格,如果不删除的话,或在打印到最后一行的时候报错,当然不会显示,但会影响程序效率
    this.printDS.Tables.RemoveAt(0);
    ev.HasMorePages=false;
   }

private float GetXPoint(string key)
  {
   //建立连接
   float retValue=0;
   XmlDocument xmlDoc=new XmlDocument();
   try
   {
    xmlDoc.Load(configFile);
    retValue=float.Parse(xmlDoc["Config"][key].Attributes["XPoint"].InnerText);
                MessageBox.Show(retValue.ToString());
    return retValue;//0--没有找到
   }
   catch(Exception ee)
   {
    return 0;
   }
  }

  /// <summary>
  /// 获得Y坐标
  /// </summary>
  /// <param name="key">关键引索</param>
  /// <returns></returns>
  private float GetYPoint(string key)
  {
   //建立连接
   float retValue=0;
   XmlDocument xmlDoc=new XmlDocument();
   try
   {
    xmlDoc.Load(configFile);
    retValue=float.Parse(xmlDoc["Config"][key].Attributes["YPoint"].InnerText);
    return retValue;//0--没有找到
   }
   catch(Exception ee)
   {
    return 0;
   }
  }

  /// <summary>
  /// 获得任意属性值
  /// </summary>
  /// <param name="key1">引索</param>
  /// <param name="key2">属性</param>
  /// <returns></returns>
  private string GetString(string key1 ,string key2)
  {
            //建立连接PointFont","size
   string retValue="";
   XmlDocument xmlDoc=new XmlDocument();
   try
   {
    xmlDoc.Load(configFile);
    retValue=(xmlDoc["Config"][key1].Attributes[key2].InnerText);
               
    return retValue;//0--没有找到
   }
   catch(Exception ee)
   {
    return "";
   }
  }

  private void printButton2_Click(object sender, System.EventArgs e)
  {
   try
   {
    
    
    //    streamToPrint = new StreamReader("C://MyFile.txt");
    this.configFile=Application.StartupPath+"//Config2.xml";
                MessageBox.Show(GetString("PointFont", "family").ToString(), GetString("PointFont", "size").ToString());
                    return;
    try
    {
     printFont = new Font("Arial", 10);
     PrintDocument pd = new PrintDocument();
     pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);
                    pd.Print();
    } 
    finally
    {
     //streamToPrint.Close();
     
    }
   } 
   catch(Exception ex)
   {
    //MessageBox.Show(ex.Message);
   }
  }

  private void button1_Click(object sender, System.EventArgs e)
  {
   this.configFile=Application.StartupPath+"//Config1.xml";
   MessageBox.Show(this.GetXPoint("Point1").ToString());
  }