2024年6月14日发(作者:)

using System;

using c;

using ;

using ;

using ;

using ng;

using g;

using ;

/* 打印程序的一半步骤是:1、在开始打印前(BeginPrint事件中)初始化所有的打印参数

* 2、在启动打印时(PrintPage事件中)绘制打印区域的内容

*/

namespace _BLL

{

class Printer_BLL

{

private DataTable theDGV; //用于接收包含打印内容的数据表

private string printTitle; //打印标题内容

private ListColumnsWidth; //存储列宽

private List ColumnsLeft;

private int totalWidth; //计算打印区域的总宽度;

private int RowHeaderHeight; //列标题的宽度

private int RowsHeight; //存储行高

private int pageNO; //当前打印页的序号

private int rowPoint; //当前打印行的序号

private bool newPage; //是否打印新页的标识

private int PageWidth;

private int PageHeight;

private int LeftMargin;

private int TopMargin;

private int RightMargin;

private int BottomMargin;

private StringFormat TitleFormat; //标题打印对齐格式

private StringFormat CellFormat; //表格打印对齐格式

private PrintDocument myDocument; //向打印机发送的输出对象

private Font theTitleFont; //标题字体

private Font printFont; //表格字体

public Printer_BLL(PrintDocument document, DataTable DGV, string

title,Font titleFont,Font printFont)

{

= DGV;

itle = title;

leFont = titleFont;

ont = printFont;

ment = document;

AtMargins = true;//指定绘图操作从页边距内开始算起

ColumnsWidth = new List();

ColumnsLeft = new List();

}

//计算打印参数。包括预打印表格的原始宽度,打印高度宽度

public void print_Calculate(Graphics g)

{

totalWidth =0;

SizeF tmpSize = new SizeF();

float tmpWidth;

//(ng());

for (int i = 0; i < ; i++)

{

tmpSize = eString(s[i].ColumnName,

printFont);

tmpWidth = ;

RowHeaderHeight = (int) + 12;

for (int j = 0; j < ; j++)

{

tmpSize = eString("所有", printFont);

RowsHeight = (int) + 8; //获取行的

高度

tmpSize = eString([j][i].ToString(),

printFont);

if ( > tmpWidth)

{

tmpWidth = ;

}