public class ReportPrint
     {
         private System.Windows.Forms.PrintPreviewDialog _PreviewDialog;
         private System.Drawing.Printing.PrintDocument _PrintDocument;
         private System.Data .DataView _Content;
         internal PageSetup _PageSetup=new PageSetup ();
         internal Title _Title=new Title ();
         internal ReportHeader _ReportHeader=new ReportHeader ();
         internal PageHeader _PageHeader=new PageHeader ();
         internal PageDetail _PageDetail=new PageDetail ();
         internal ReportTailer _ReportTailer=new ReportTailer ();
         internal LineFrame _LineFrame=new LineFrame ();
         internal ManyColumnsVariable _ManyColumnsVariable=new ManyColumnsVariable ();
         private void Transfer(CaptionsContent _Captions)
         {
             _Title ._TitleText =_Captions._TitleText ;
             _ReportHeader ._HeaderText_Left  =_Captions._HeaderText_Left  ;
             _ReportHeader._HeaderText_Center  =_Captions._HeaderText_Center ;
             _ReportHeader._HeaderText_Right  =_Captions._HeaderText_Right  ;
             _ReportTailer ._TailerText_Left =_Captions._TailerText_Left   ;
             _ReportTailer._TailerText_Center =_Captions._TailerText_Center   ;
             _ReportTailer ._TailerText_Right  =_Captions._TailerText_Right  ;
         }
         private void PrintTitle(PrintPageEventArgs e)
         {
             if (Page>=FromPage && Page<=ToPage) 
             {
                 PressWork.Print(_Title ._Vertex_X+Offset_X ,_Title ._Vertex_Y+Current_Y ,_Title ._Width ,_Title ._Height ,_Title ._TitleText ,_Title ._Font ,_Title ._Format,e);
             }
     
         }
         private void PrintReportTailer(PrintPageEventArgs e)
         {
             
             if (Page>=FromPage && Page<=ToPage) 
             {
                 PressWork.Print (_ReportTailer ._Vertex_X_Left+Offset_X , _ReportTailer ._Vertex_Y_Left+Current_Y , _ReportTailer ._Width_Left, _ReportTailer._Height_Left ,  _ReportTailer._TailerText_Left  ,_ReportTailer._Font_Left ,_ReportTailer._Format_Left ,e);
                 PressWork.Print (_ReportTailer._Vertex_X_Center+Offset_X ,_ReportTailer._Vertex_Y_Center+Current_Y ,_ReportTailer._Width_Center,_ReportTailer._Height_Center ,_ReportTailer._TailerText_Center ,_ReportTailer._Font_Center ,_ReportTailer._Format_Center ,e);
                 PressWork.Print (_ReportTailer._Vertex_X_Right+Offset_X , _ReportTailer._Vertex_Y_Right+Current_Y , _ReportTailer._Width_Right ,_ReportTailer._Height_Right , _ReportTailer._TailerText_Right ,_ReportTailer._Font_Right ,_ReportTailer._Format_Right ,e);
             }
         } 
         private void PrintPageHeaderText(PrintPageEventArgs e)
         {
             if (Page>=FromPage && Page<=ToPage) 
             {
                 int Temp=_PageHeader._PageHeaderText .Length ;
                 for (int i=0;i<Temp;i++)
                 {
                     PressWork.Print (_PageHeader._Vertex_X [i]+Offset_X,_PageHeader._Vertex_Y [i]+Current_Y,_PageHeader._Width [i],_PageHeader._Height [i],_PageHeader._PageHeaderText [i],_PageHeader._Font [i],_PageHeader._Format [i],e);
                 }
             }
         }
         private void PrintPageFrame(PrintPageEventArgs e)
         {
             if (Page>=FromPage && Page<=ToPage) 
             {
                 int Temp=_LineFrame._Vertex_X .Length ;
                 Rectangle[] Panes=new Rectangle [Temp];
                 for (int i=0;i<Temp;i++)
                 {
                     Panes[i]=new Rectangle (_LineFrame._Vertex_X[i]+Offset_X  ,_LineFrame._Vertex_Y[i] +Current_Y ,_LineFrame._Width[i]  ,_LineFrame._Height[i] );
                 }
                 if (Panes.Length >0)
                 {
                     PressWork.Print (Panes,e);
                 }
             }
         }
         private void PrintPageDetail(PrintPageEventArgs e)
         {
             if (Page>=FromPage && Page<=ToPage) 
             {
                 int Temp=_PageDetail._Vertex_X .Length ;
                 for (int i=0;i<Temp;i++)
                 {
                     switch (_PageDetail._PrintDealType[i] )
                     {
                         case PrintDealType.Direct :PressWork.Print (_PageDetail._Vertex_X [i]+Offset_X,_PageDetail._Vertex_Y [i]+Current_Y,_PageDetail._Width [i],_PageDetail._Height [i],_Content[CurrentRecord][_PageDetail._FieldName [i]].ToString (),_PageDetail._Font [i],_PageDetail._Format [i],e);break;
                         case PrintDealType.ThrowoffTailZero :PressWork.Print (_PageDetail._Vertex_X [i]+Offset_X,_PageDetail._Vertex_Y [i]+Current_Y,_PageDetail._Width [i],_PageDetail._Height [i],Function.DecimalThrowoffTailZero (_Content[CurrentRecord][_PageDetail._FieldName [i]].ToString ()),_PageDetail._Font [i],_PageDetail._Format [i],e);break;
                         case PrintDealType.LitterToUpper :PressWork.Print (_PageDetail._Vertex_X [i]+Offset_X,_PageDetail._Vertex_Y [i]+Current_Y,_PageDetail._Width [i],_PageDetail._Height [i],Function.Litter2Upper(_Content[CurrentRecord][_PageDetail._FieldName [i]].ToString ()),_PageDetail._Font [i],_PageDetail._Format [i],e);break;
                         case PrintDealType.HideZero :
                             if (System.Decimal .Parse (_Content[CurrentRecord][_PageDetail._FieldName [i]].ToString ())!=0)
                             {
                                 PressWork.Print (_PageDetail._Vertex_X [i]+Offset_X,_PageDetail._Vertex_Y [i]+Current_Y,_PageDetail._Width [i],_PageDetail._Height [i],_Content[CurrentRecord][_PageDetail._FieldName [i]].ToString (),_PageDetail._Font [i],_PageDetail._Format [i],e);
                             }
                             break;
                         case PrintDealType.HideOrThrowoffTailZero :
                             if (System.Decimal .Parse (_Content[CurrentRecord][_PageDetail._FieldName [i]].ToString ())!=0)
                             {
                                 PressWork.Print (_PageDetail._Vertex_X [i]+Offset_X,_PageDetail._Vertex_Y [i]+Current_Y,_PageDetail._Width [i],_PageDetail._Height [i],Function.DecimalThrowoffTailZero (_Content[CurrentRecord][_PageDetail._FieldName [i]].ToString ()),_PageDetail._Font [i],_PageDetail._Format [i],e);
                             }
                             break;
                         case PrintDealType.Percent:
                             PressWork.Print (_PageDetail._Vertex_X [i]+Offset_X,_PageDetail._Vertex_Y [i]+Current_Y,_PageDetail._Width [i],_PageDetail._Height [i],Function.PercentTransfer(_Content[CurrentRecord][_PageDetail._FieldName [i]].ToString ()),_PageDetail._Font [i],_PageDetail._Format [i],e);
                             break;
                     }
                 }
             }
         }
         private void PrintReportHeader(PrintPageEventArgs e)
         {
             if (Page>=FromPage && Page<=ToPage) 
             {
                 PressWork.Print (_ReportHeader ._Vertex_X_Left +Offset_X,_ReportHeader ._Vertex_Y_Left+Current_Y ,_ReportHeader ._Width_Left,_ReportHeader._Height_Left ,_ReportHeader._HeaderText_Left ,_ReportHeader._Font_Left ,_ReportHeader._Format_Left ,e);
                 PressWork.Print (_ReportHeader._Vertex_X_Center+Offset_X ,_ReportHeader._Vertex_Y_Center+Current_Y ,_ReportHeader._Width_Center ,_ReportHeader._Height_Center ,_ReportHeader._HeaderText_Center ,_ReportHeader._Font_Center ,_ReportHeader._Format_Center ,e);
                 PressWork.Print (_ReportHeader._Vertex_X_Right+Offset_X ,_ReportHeader._Vertex_Y_Right+Current_Y ,_ReportHeader._Width_Right ,_ReportHeader._Height_Right ,_ReportHeader._HeaderText_Right ,_ReportHeader._Font_Right ,_ReportHeader._Format_Right ,e);
             }
         }
         private void PrintDocument(object sender, PrintPageEventArgs e)
         {
             while(true)
             {
                 PageInitialize();
                 if (Page==0)
                 {
                     ReportInitialize();
                                     Page++;
                     Title#region Title
                     if (_Title ._RowHeight>0)
                     {
                         PrintTitle(e);
                         LeavePageHeight-=_Title ._RowHeight ;
                         Current_Y+=_Title ._RowHeight ;
                     }
                     #endregion
                     ReportHeader#region ReportHeader
                     if (LeavePageHeight>=_ReportHeader ._RowHeight )
                     {
                         if (_ReportHeader._RowHeight>0)
                         {
                             PrintReportHeader(e);
                             LeavePageHeight-=_ReportHeader._RowHeight ;
                             Current_Y+=_ReportHeader._RowHeight ;
                         }
                     }
                     #endregion
                     PageHeader and Frame#region PageHeader and Frame
                     if (LeavePageHeight>=this._LineFrame ._RowHeight )
                     {
                         if (_PageHeader._RowHeight >0)
                         {
                             PrintPageHeaderText(e);
                             PrintPageFrame(e);
                             LeavePageHeight-=_LineFrame ._RowHeight ;
                             Current_Y+=_LineFrame ._RowHeight ;
                         }
                     }
                     #endregion
                     Detail and Frame#region Detail and Frame
                     while (LeavePageHeight>=this._LineFrame ._RowHeight  && CurrentRecord<RecordNumber)
                     {
                         PrintPageDetail(e);
                         CurrentRecord++;
                         PrintPageFrame(e);
                         LeavePageHeight-=_LineFrame ._RowHeight ;
                         Current_Y+=_LineFrame ._RowHeight ;
                     }
                     #endregion
                 }
                 else
                 {
                                     Page++;
                     if (LeavePageHeight>=this._LineFrame ._RowHeight )
                     {
                         if (_PageHeader._RowHeight >0)
                         {
                             PrintPageHeaderText(e);
                             PrintPageFrame(e);
                             LeavePageHeight-=_LineFrame ._RowHeight ;
                             Current_Y+=_LineFrame ._RowHeight ;
                         }
                     }
                     while (LeavePageHeight>=this._LineFrame ._RowHeight && CurrentRecord<RecordNumber)
                     {
                         PrintPageDetail(e);
                         CurrentRecord++;
                         PrintPageFrame(e);
                         LeavePageHeight-=_LineFrame ._RowHeight ;
                         Current_Y+=_LineFrame ._RowHeight ;
                     }
                 }                if (CurrentRecord<RecordNumber)
                 {
                     e.HasMorePages =true;                }
                 else
                 {
                     if (_ReportTailer._RowHeight >0)
                     {
                         PrintReportTailer(e);
                     }
                     e.HasMorePages =false;
                     Page=0;
                     break;
                 }
                 if (Page>=FromPage && Page<=ToPage) 
                 {
                     if (Page==ToPage) e.HasMorePages =false;
                     break;
                 }            }
         }
         private void PrintDocumentManyColumns(object sender, PrintPageEventArgs e)
         {
             while(true)
             {
                 PageInitialize();
                 int 当前列=0;
                 
                 if (Page==0)
                 {
                     ReportInitialize();
                     Page++;
                     Title#region Title
                     if (_Title ._RowHeight>0)
                     {
                         PrintTitle(e);
                         LeavePageHeight-=_Title ._RowHeight ;
                         Current_Y+=_Title ._RowHeight ;
                     }
                     #endregion
                     ReportHeader#region ReportHeader
                     if (LeavePageHeight>=_ReportHeader ._RowHeight )
                     {
                         if (_ReportHeader._RowHeight>0)
                         {
                             PrintReportHeader(e);
                             LeavePageHeight-=_ReportHeader._RowHeight ;
                             Current_Y+=_ReportHeader._RowHeight ;
                         }
                     }
                     #endregion
                     Hold(true);                }
                 else
                 {
                     Page++;
                 }
                 //#region PageHeader and Frame
                 
                 int Current_Y_End=Current_Y;
                 int LeavePageHeight_End=LeavePageHeight;
                 int LeavePageHeightTemp=LeavePageHeight;
                 int Current_YTemp=Current_Y;
                 for (当前列=0;当前列<_ManyColumnsVariable._HeaderandDetailColumns;当前列++ )
                 {
                     Current_Y=Current_YTemp;
                     LeavePageHeight=LeavePageHeightTemp;
                     Conversion(当前列);
                     
                     if (LeavePageHeight>=this._LineFrame ._RowHeight )
                     {
                         if (_PageHeader._RowHeight >0)
                         {
                             PrintPageHeaderText(e);
                             PrintPageFrame(e);
                             LeavePageHeight-=_LineFrame ._RowHeight ;
                             Current_Y+=_LineFrame ._RowHeight ;
                         }
                     }
                     while (LeavePageHeight>=this._LineFrame ._RowHeight  && CurrentRecord<RecordNumber)
                     {
                         PrintPageDetail(e);
                         CurrentRecord++;
                         PrintPageFrame(e);
                         LeavePageHeight-=_LineFrame ._RowHeight ;
                         Current_Y+=_LineFrame ._RowHeight ;
                     }
                     if (当前列==0)
                     {
                         Current_Y_End=Current_Y;
                         LeavePageHeight_End=LeavePageHeight;
                     }
                     if (CurrentRecord>=RecordNumber) break;
                 }
                 Current_Y=Current_Y_End;
                 LeavePageHeight=LeavePageHeight_End;                if (CurrentRecord<RecordNumber)
                 {
                     e.HasMorePages =true;
                 }
                 else
                 {
                     if (_ReportTailer._RowHeight >0)
                     {
                         PrintReportTailer(e);
                     }
                     Hold(false);
                     Page=0;
                     e.HasMorePages =false;
                     break;
                 }
                 if (Page>=FromPage && Page<=ToPage) 
                 {
                     if (Page==ToPage)
                     {
                         Hold(false);
                         e.HasMorePages =false;
                     }
                     break;
                 }
             }
         }
         private void Hold(bool 保留)
         {
             将X值保留或还原#region 将X值保留或还原
             int Temp;
             if (_ManyColumnsVariable._Vertex_X_PageHeader ==null)
             {
                 Temp=_PageHeader._Vertex_X .Length;
                 _ManyColumnsVariable._Vertex_X_PageHeader =new int [Temp];
             }
             if (_ManyColumnsVariable._Vertex_X_PageDetail ==null)
             {
                 Temp=_PageDetail._Vertex_X .Length ;
                 _ManyColumnsVariable._Vertex_X_PageDetail =new int [Temp];
             }
             if (_ManyColumnsVariable._Vertex_X_LineFrame==null)
             {
                 Temp=_LineFrame._Vertex_X .Length ;
                 _ManyColumnsVariable._Vertex_X_LineFrame =new int [Temp];
             }
             Temp=_PageHeader._Vertex_X .Length;
             //_ManyColumnsVariable._Vertex_X_PageHeader =new int [Temp];
             for ( int i=0;i<Temp;i++)
             {
                 if (保留)
                 {
                     _ManyColumnsVariable._Vertex_X_PageHeader[i] =_PageHeader._Vertex_X[i];
                 }
                 else
                 {
                     _PageHeader._Vertex_X[i]=_ManyColumnsVariable._Vertex_X_PageHeader[i] ;
                 }
             }
             Temp=_PageDetail._Vertex_X .Length ;
             //_ManyColumnsVariable._Vertex_X_PageDetail =new int [Temp];
             for (int i=0;i<Temp;i++)
             {
                 if (保留)
                 {
                     _ManyColumnsVariable._Vertex_X_PageDetail [i]=_PageDetail._Vertex_X [i];
                 }
                 else
                 {
                     _PageDetail._Vertex_X [i]=_ManyColumnsVariable._Vertex_X_PageDetail [i];
                 }
             }
             Temp=_LineFrame._Vertex_X .Length ;
             //_ManyColumnsVariable._Vertex_X_LineFrame =new int [Temp];
             for (int i=0;i<Temp;i++)
             {
                 if (保留)
                 {
                     _ManyColumnsVariable._Vertex_X_LineFrame [i]=_LineFrame._Vertex_X [i];
                 }
                 else
                 {
                     _LineFrame._Vertex_X [i]=_ManyColumnsVariable._Vertex_X_LineFrame [i];
                 }
             }
             #endregion
         }
         private void Conversion(int Column)
         {
             int Temp;
             Temp=_PageHeader._Vertex_X .Length;
             for ( int i=0;i<Temp;i++)
             {
                 _PageHeader._Vertex_X[i]=_ManyColumnsVariable._Vertex_X_PageHeader[i]+Column*_ManyColumnsVariable._Offset_X_Columns  ;
             }
             Temp=_PageDetail._Vertex_X .Length ;
             for (int i=0;i<Temp;i++)
             {
                 _PageDetail._Vertex_X [i]=_ManyColumnsVariable._Vertex_X_PageDetail [i]+Column*_ManyColumnsVariable._Offset_X_Columns;
             }
             Temp=_LineFrame._Vertex_X .Length ;
             for (int i=0;i<Temp;i++)
             {
                 _LineFrame._Vertex_X [i]=_ManyColumnsVariable._Vertex_X_LineFrame [i]+Column*_ManyColumnsVariable._Offset_X_Columns;
             }
         }
         private int RecordNumber;
         private int CurrentRecord;
         private int Page;
         private int FromPage;//选择打印页
         private int ToPage;//选择打印页
         private int AvailablePageHeight;
         private int LeavePageHeight;
         private int Current_Y;
         private int Offset_X;
         public ReportPrint()
         {
             _PrintDocument=new PrintDocument ();
             this._PreviewDialog = new System.Windows.Forms.PrintPreviewDialog();
             this._PreviewDialog.AutoScrollMargin = new System.Drawing.Size(0, 0);
             this._PreviewDialog.AutoScrollMinSize = new System.Drawing.Size(0, 0);
             this._PreviewDialog.ClientSize = new System.Drawing.Size(480, 360);
             
             this._PreviewDialog.Enabled = true;
             this._PreviewDialog.Location = new System.Drawing.Point(0, 0);
             this._PreviewDialog.MaximumSize = new System.Drawing.Size(0, 0);
             this._PreviewDialog.Name = "打印预览";
             this._PreviewDialog.Opacity = 1;
             this._PreviewDialog.TransparencyKey = System.Drawing.Color.Empty;
             this._PreviewDialog.Visible = false;
         
             this._PreviewDialog .Document =this._PrintDocument ;
         }
         private void ReportInitialize()
         {
             Offset_X=_PageSetup.Margin_Left ;
             RecordNumber=_Content.Count ;
             Page=0;
             CurrentRecord=0;
             AvailablePageHeight=_PageSetup .Paper_Height-_PageSetup.Margin_Top -_PageSetup.Margin_Bottom ;
         }
         private void PageInitialize()
         {
             LeavePageHeight=AvailablePageHeight;
             Current_Y=_PageSetup.Margin_Top ;
         }
         private void PrintInitialize()
         {
             if (_PageSetup._PageSettings .PrinterSettings.PrintRange==System.Drawing .Printing .PrintRange .AllPages )
             {
                 ToPage=int.MaxValue ;
                 FromPage=0;
             }
             else
             {
                 FromPage=_PageSetup._PageSettings .PrinterSettings .FromPage ;//选择打印页
                 ToPage=_PageSetup._PageSettings .PrinterSettings .ToPage ;//选择打印页
                 
             }
             if (_PageSetup._PageSettings .Landscape )
             {
                 _PageSetup.Paper_Width =_PageSetup._PageSettings .PaperSize .Height ;
                 _PageSetup.Paper_Height =_PageSetup._PageSettings .PaperSize .Width ;
                 _PageSetup.Margin_Top =_PageSetup._PageSettings .Margins .Top ;
                 _PageSetup.Margin_Left =_PageSetup._PageSettings .Margins .Left ;
                 _PageSetup.Margin_Bottom =_PageSetup._PageSettings .Margins .Bottom ;
             }
             else
             {
                 _PageSetup.Paper_Width =_PageSetup._PageSettings .PaperSize .Width ;
                 _PageSetup.Paper_Height =_PageSetup._PageSettings .PaperSize .Height ;
                 _PageSetup.Margin_Top =_PageSetup._PageSettings .Margins .Top ;
                 _PageSetup.Margin_Left =_PageSetup._PageSettings .Margins .Left ;
                 _PageSetup.Margin_Bottom =_PageSetup._PageSettings .Margins .Bottom ;
             }
         }
         public void Print(System.Data .DataView _MostContent,CaptionsContent _Captions,bool _PreView,string _TaskName,PageSettings _PageSettings)
         {
             if (_PageSettings!=null)
             {                //设置PageSetup
                _PageSetup._PageSettings =_PageSettings;
                 
                 //设置打印文档
                 _PrintDocument.PrinterSettings =_PageSettings.PrinterSettings ;
                 _PrintDocument.DefaultPageSettings =_PageSettings;
                 PrintInitialize();
                 //_PrintDocument.PrinterSettings =_PageSetup._PrinterSet  ;
             }
             else
             {
                 throw new System .Exception ("打印设置错误");
             }            //string DefaultPrinter=_PrintDocument.PrinterSettings .PrinterName ;//保存缺省打印机
             //System.Drawing .Printing .PrinterSettings _DefaultPrinterSet=_PrintDocument.PrinterSettings ;
             //_PrintDocument.PrinterSettings .PrinterName =_PageSetup.Printer_Name ;//使用自定打印机
             _Content=_MostContent;
             Transfer(_Captions);
             ReportInitialize();
             _PrintDocument.DefaultPageSettings =_PageSetup._PageSettings ;
             if (_ManyColumnsVariable._HeaderandDetailColumns >1)
             {
                 this._PrintDocument.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(this.PrintDocumentManyColumns);
             }
             else
             {
                 this._PrintDocument.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(this.PrintDocument);
             }
             this._PrintDocument .DocumentName =_TaskName;
             if (_PreView)
             {
                 this._PreviewDialog .ShowDialog ();
             }
             else
             {
                 this._PrintDocument .Print ();
             }
             if (_ManyColumnsVariable._HeaderandDetailColumns >1)
             {
                 this._PrintDocument.PrintPage -= new System.Drawing.Printing.PrintPageEventHandler(this.PrintDocumentManyColumns);
             }
             else
             {
                 this._PrintDocument.PrintPage -= new System.Drawing.Printing.PrintPageEventHandler(this.PrintDocument);
             }
             //this._PrintDocument.PrintPage -= new System.Drawing.Printing.PrintPageEventHandler(this.PrintDocument);
             //_PrintDocument.PrinterSettings=_DefaultPrinterSet;
             //_PrintDocument.PrinterSettings .PrinterName=DefaultPrinter;//恢复缺省打印机
         }
     } 
 C#中Winform下通用打印类(2)-ReportPrint的参数与变量类 
 public enum PrintDealType{Direct,ThrowoffTailZero,LitterToUpper,HideZero,HideOrThrowoffTailZero,Percent}
     internal class PressWork
     {
         internal static System.Drawing .Rectangle _Rectangle(int _X,int _Y,int _Width,int _Height)
         {
             return new Rectangle (_X ,_Y ,_Width ,_Height );
         }
         internal static void Print(int _X,int _Y,int _Width,int _Height, PrintPageEventArgs e)
         {
             e.Graphics .DrawRectangle (Pens.Black ,_X,_Y,_Width,_Height);
         }
         internal static void Print(Rectangle [] Panes,PrintPageEventArgs e)
         {
             e.Graphics .DrawRectangles (Pens.Black ,Panes);
         }
         internal static void Print( int _X,int _Y,int _Width,int _Height,string _Text,Font _Font,StringFormat _Format,PrintPageEventArgs e)
         {
             e.Graphics .DrawString (_Text,_Font,Brushes .Black ,_Rectangle(_X,_Y,_Width,_Height),_Format);
         }
         internal static void Print( int _X,int _Y,int _Width,int _Height,System.Decimal  _Num,Font _Font,StringFormat _Format,PrintPageEventArgs e)
         {
             string _Text=(_Num*100).ToString()+"%";
             e.Graphics .DrawString (_Text,_Font,Brushes .Black ,_Rectangle(_X,_Y,_Width,_Height),_Format);
         }
     }    public class CaptionsContent
     {
         public string _TitleText;
         public string _HeaderText_Left;
         public string _HeaderText_Center;
         public string _HeaderText_Right;
         public string _TailerText_Left;
         public string _TailerText_Center;
         public string _TailerText_Right;    }
 internal class PageSetup
     {
         private System.Drawing .Printing .PrinterSettings _PrinterSettings;
         public System.Drawing .Printing .PrinterSettings _PrinterSet
         {
             set
             {
                 _PrinterSettings=value;
                 //_Initialize();
             }
             get
             {
                 return _PrinterSettings;
             }
         }
         private System.Drawing .Printing .PageSettings  _Page;
         public System.Drawing .Printing .PageSettings _PageSettings
         {
             set 
             {
                 _Page=value;
                 _Initialize();
             }
             get
             {
                 return _Page;
             }
         }
         internal int Paper_Width;
         internal int Paper_Height;
         internal int Margin_Top;
         internal int Margin_Left;
         internal int Margin_Bottom;
         internal void _Initialize()
         {
             Paper_Width=_Page.PaperSize .Width ;
             Paper_Height=_Page .PaperSize .Height ;
             Margin_Top=_Page .Margins .Top  ;
             Margin_Left=_Page .Margins .Left ;
             Margin_Bottom=_Page.Margins .Bottom ;
         }    }
     internal class Title
     {
         public string _TitleText;
         internal int _Vertex_X;
         internal int _Vertex_Y;
         internal int _Width;
         internal int _Height;
         internal System.Drawing .Font _Font;
         internal System.Drawing .StringFormat _Format;//共有Center,Near居左,Far居右
         internal int _RowHeight;
     }
     internal class ReportHeader
     {
         public string _HeaderText_Left;
         public string _HeaderText_Center;
         public string _HeaderText_Right;
         internal int _Vertex_X_Left;
         internal int _Vertex_Y_Left;
         internal int _Width_Left;
         internal int _Height_Left;
         internal System.Drawing .StringFormat _Format_Left;//共有Center,Near居左,Far居右
         internal System.Drawing .Font _Font_Left;            internal int _Vertex_X_Center;
         internal int _Vertex_Y_Center;
         internal int _Width_Center;
         internal int _Height_Center;
         internal System.Drawing .StringFormat _Format_Center;//共有Center,Near居左,Far居右
         internal System.Drawing .Font _Font_Center;            internal int _Vertex_X_Right;
         internal int _Vertex_Y_Right;
         internal int _Width_Right;
         internal int _Height_Right;
         internal System.Drawing .StringFormat _Format_Right;//共有Center,Near居左,Far居右
         internal System.Drawing .Font _Font_Right;            internal int _RowHeight;
     }
     internal class ManyColumnsVariable
     {
         internal int _HeaderandDetailColumns;
         internal int _Offset_X_Columns;
         internal int[] _Vertex_X_PageHeader;
         internal int[] _Vertex_X_PageDetail; 
         internal int[] _Vertex_X_LineFrame; 
     }
     internal class PageHeader
     {
         
         public string [] _PageHeaderText;
         internal int[] _Vertex_X;
         internal int[] _Vertex_Y; 
         internal int[] _Width;
         internal int[] _Height;
         internal System.Drawing .Font[] _Font;
         internal System.Drawing .StringFormat[] _Format;//共有Center,Near居左,Far居右
         internal int _RowHeight;
     }
     internal class PageDetail
     {
         internal PrintDealType[] _PrintDealType;
         internal string[] _FieldName;
         internal int[] _Vertex_X;
         internal int[] _Vertex_Y; 
         internal int[] _Width;
         internal int[] _Height;
         internal System.Drawing .Font[] _Font;
         internal System.Drawing .StringFormat[] _Format;//共有Center,Near居左,Far居右
         internal int _RowHeight;
     }
     internal class ReportTailer
     {
         public string _TailerText_Left;
         public string _TailerText_Center;
         public string _TailerText_Right;
         internal int _Vertex_X_Left;
         internal int _Vertex_Y_Left;
         internal int _Width_Left;
         internal int _Height_Left;
         internal System.Drawing .StringFormat _Format_Left;//共有Center,Near居左,Far居右
         internal System.Drawing .Font _Font_Left;            internal int _Vertex_X_Center;
         internal int _Vertex_Y_Center;
         internal int _Width_Center;
         internal int _Height_Center;
         internal System.Drawing .StringFormat _Format_Center;//共有Center,Near居左,Far居右
         internal System.Drawing .Font _Font_Center;            internal int _Vertex_X_Right;
         internal int _Vertex_Y_Right;
         internal int _Width_Right;
         internal int _Height_Right;
         internal System.Drawing .StringFormat _Format_Right;//共有Center,Near居左,Far居右
         internal System.Drawing .Font _Font_Right;            internal int _RowHeight;
     }
     internal class LineFrame
     {
         internal int[] _Vertex_X;
         internal int[] _Vertex_Y; 
         internal int[] _Width;
         internal int[] _Height;
         internal int _RowHeight;
     }C#中Winform下通用打印类-ReportPrint
原创
             ©著作权归作者所有:来自51CTO博客作者biyusr216的原创作品,请联系作者获取转载授权,否则将追究法律责任        
             
            
        
                提问和评论都可以,用心的回复会被更多人看到
                评论
            
            
                    发布评论
                
            
            相关文章
        
        
- 
                    C#中Winform下通用打印类(3)-ReportPrintCreator/横向为true,纵向为false。//生成_Title。 c# java 服务器 System Source
- 
                    C#万能打印--winform中打印dataGridView表格C#万能打印组件,打印winform程序中dataGridView表格。 职场 C# 休闲 dataGridView 万能打印
- 
                    WinForm–C#WinForm–CSharpWinForm–CSharpWinForm–CSharp1.C#语法基础2.WinForm基础3.WinForm入门 控件 c# 语法基础 github 经验分享
 
 
                    













 
                    

 
                 
                    