打印的一些程序
2014-12-25 17:02
148 查看
判断驱动
if (CommonCls.Printer.GetPrinter() == null || CommonCls.Printer.GetPrinter().Length == 0)
{
State = "没有找到合适的打印机...";
CommonCls.ClassLog.WriteLog(CommonCls.ClassLog.LogType.Error, "错误来源:1.打印机错误,明细:Message:{" + State + "}");
return false;
}
打开并口
iHandle = CreateFile(prnPort, 0x40000000, 0, 0, 3, 0, 0);
if (iHandle != -1)
{
return true;
}
else
{
return false;
}
打出内容:
FileStream fs = new FileStream(safeFileHandle, FileAccess.ReadWrite);
fs.Write(buf, 0, buf.Length);
fs.Close();
并口+驱动:
PrintDocument printDocument = new PrintDocument();
//如:printDocument.PrinterSettings.PrinterName获得默认打印机打印机名称
//printDocument.DefaultPageSettings //可以获取或设置打印页面参数信息、如是纸张大小,是否横向打印等
//设置文档名
printDocument.DocumentName = "处方笺";//设置完后可在打印对话框及队列中显示(默认显示document)
//设置纸张大小(可以不设置取,取默认设置)
PaperSize ps = new PaperSize("Your Paper Name", 72, 297);
ps.RawKind = 150; //如果是自定义纸张,就要大于118,(A4值为9,详细纸张类型与值的对照请看http://msdn.microsoft.com/zh-tw/library/system.drawing.printing.papersize.rawkind(v=vs.85).aspx)
printDocument.DefaultPageSettings.PaperSize = ps;
//打印开始前
printDocument.BeginPrint += new PrintEventHandler(printDocument_BeginPrint);
//打印输出(过程)
printDocument.PrintPage += new PrintPageEventHandler(printDocument_PrintPage);
//打印结束
printDocument.EndPrint += new PrintEventHandler(printDocument_EndPrint);
printDocument.Print(); //打印
public void printDocument_BeginPrint(object sender, PrintEventArgs e)
{
//也可以把一些打印的参数放在此处设置
}
public void printDocument_PrintPage(object sender, PrintPageEventArgs e)
{
//打印啥东东就在这写了
Graphics g = e.Graphics;
Brush b = new SolidBrush(Color.Black);
Font titleFont = new Font("宋体", 16);
string title = "东奔西走社区服务站 ";
g.DrawString(title, titleFont, b, new PointF((e.PageBounds.Width - g.MeasureString(title, titleFont).Width) / 2, 20));
//e.Cancel//获取或设置是否取消打印
//e.HasMorePages //为true时,该函数执行完毕后还会重新执行一遍(可用于动态分页)
}
void printDocument_EndPrint(object sender, PrintEventArgs e)
{
//打印结束后相关操作
}
if (CommonCls.Printer.GetPrinter() == null || CommonCls.Printer.GetPrinter().Length == 0)
{
State = "没有找到合适的打印机...";
CommonCls.ClassLog.WriteLog(CommonCls.ClassLog.LogType.Error, "错误来源:1.打印机错误,明细:Message:{" + State + "}");
return false;
}
打开并口
iHandle = CreateFile(prnPort, 0x40000000, 0, 0, 3, 0, 0);
if (iHandle != -1)
{
return true;
}
else
{
return false;
}
打出内容:
FileStream fs = new FileStream(safeFileHandle, FileAccess.ReadWrite);
fs.Write(buf, 0, buf.Length);
fs.Close();
并口+驱动:
PrintDocument printDocument = new PrintDocument();
//如:printDocument.PrinterSettings.PrinterName获得默认打印机打印机名称
//printDocument.DefaultPageSettings //可以获取或设置打印页面参数信息、如是纸张大小,是否横向打印等
//设置文档名
printDocument.DocumentName = "处方笺";//设置完后可在打印对话框及队列中显示(默认显示document)
//设置纸张大小(可以不设置取,取默认设置)
PaperSize ps = new PaperSize("Your Paper Name", 72, 297);
ps.RawKind = 150; //如果是自定义纸张,就要大于118,(A4值为9,详细纸张类型与值的对照请看http://msdn.microsoft.com/zh-tw/library/system.drawing.printing.papersize.rawkind(v=vs.85).aspx)
printDocument.DefaultPageSettings.PaperSize = ps;
//打印开始前
printDocument.BeginPrint += new PrintEventHandler(printDocument_BeginPrint);
//打印输出(过程)
printDocument.PrintPage += new PrintPageEventHandler(printDocument_PrintPage);
//打印结束
printDocument.EndPrint += new PrintEventHandler(printDocument_EndPrint);
printDocument.Print(); //打印
public void printDocument_BeginPrint(object sender, PrintEventArgs e)
{
//也可以把一些打印的参数放在此处设置
}
public void printDocument_PrintPage(object sender, PrintPageEventArgs e)
{
//打印啥东东就在这写了
Graphics g = e.Graphics;
Brush b = new SolidBrush(Color.Black);
Font titleFont = new Font("宋体", 16);
string title = "东奔西走社区服务站 ";
g.DrawString(title, titleFont, b, new PointF((e.PageBounds.Width - g.MeasureString(title, titleFont).Width) / 2, 20));
//e.Cancel//获取或设置是否取消打印
//e.HasMorePages //为true时,该函数执行完毕后还会重新执行一遍(可用于动态分页)
}
void printDocument_EndPrint(object sender, PrintEventArgs e)
{
//打印结束后相关操作
}
相关文章推荐
- 关于写个内核模块打印进程链表的一些信息的程序
- 关于vc 打印程序的一些有用代码
- 如何在Win32窗口程序中发命令打开一个控制台,往里面打印(printf())输出一些数据
- 解决JFreeChart和一些JAVA程序在linux上不能正确显示中文
- 关于程序调用水晶报表的一些经验
- MFC程序设计得一些基本技巧
- 今天开始尝试用.net来写一些winform的程序
- QuickReport通用报表打印程序
- 程序设计中的一些感悟(收藏)
- 解决Windows 程序界面闪烁问题的一些经验 (转载)
- 请问Tornado下一些命令行程序如何使用?
- 利用VC++开发所见即所得的打印程序
- 解决Windows 程序界面闪烁问题的一些经验(zt)
- 一些sas程序的总结
- 解决Windows 程序界面闪烁问题的一些经验
- 程序中需要常用的一些库
- VB程序打印水晶报表的典型方法1
- Quickreport万能打印程序
- 写一些靠近“程序”的文字
- 程序设计中的一些感悟