private string stringToPrint; //打印内容
private System.Drawing.Printing.PrintDocument ticketPrintDocument = new System.Drawing.Printing.PrintDocument(); //打印文档实例 /// <summary>
/// 初始化打印机
/// </summary>
private void InitPrint()
{
try
{
PrintDocument printdocument = new PrintDocument();
string stringdefault = printdocument.PrinterSettings.PrinterName; CbPrint.Items.Clear();//ComboBox控件
CbPrint.Text = stringdefault;
foreach (string str in PrinterSettings.InstalledPrinters)
{
CbPrint.Items.Add(str);//如果只需要公司的打印机,这里只ADD一次就好
}
ticketPrintDocument.PrintPage += new PrintPageEventHandler(PrinterPage);
}
catch (System.Exception ex)
{
System.Windows.MessageBox.Show(ex.ToString());
}
}
/// <summary>
/// 打印页面配置
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void PrinterPage(object sender, PrintPageEventArgs e)
{
int charactersOnPage = 0;
int linesPerPage = 0; e.Graphics.MeasureString(stringToPrint, System.Drawing.SystemFonts.DefaultFont, e.MarginBounds.Size, StringFormat.GenericTypographic, out charactersOnPage, out linesPerPage);
e.Graphics.DrawString(stringToPrint, System.Drawing.SystemFonts.DefaultFont, System.Drawing.Brushes.Black, e.MarginBounds, StringFormat.GenericTypographic); //打印东西
}
/// <summary>
/// 打印
/// </summary>
/// <param name="name"></param>
/// <param name="path"></param>
private void Print(string name, string path)
{
try
{
ticketPrintDocument.DocumentName = name;
if (CbPrint.Text != "")
{
ticketPrintDocument.PrinterSettings.PrinterName = CbPrint.Text;
}
if (printpath == null)
{
return;
} FileStream fs = new FileStream(@path, FileMode.Open);
StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("gb2312"));
StandardPrintController spc = new StandardPrintController(); stringToPrint = sr.ReadToEnd();
ticketPrintDocument.PrintController = spc;
ticketPrintDocument.Print(); sr.Close();
fs.Close();
}
catch
{
;
}
}
解决方案 »
- 【附代码】Form的Show()方法,为何运行时导致出现后即消失,而ShowDialog()则不会?
- 关于Microsoft Office Document Imaging的问题?
- string a = new string();
- .netcf 做流媒体客户端,需要什么?
- 如何改变imagesize
- 本来程序运行好好的,今天打开调试却提示“CrystalDecisions.CrystalReports.Engine.ReportDocument”的类型初始值设定项引发异常。
- IIS 出现Service Unavailable 是什么意思?
- c#winform编程
- 对vs.net的安装问题
- VC#中,改变TabControl中的TabPage的显示是什么命令?
- 怎么通过注册表得到当前系统盘的Program Files (x86)或者Program Files 文件路径
- 物料档案重复项算法
我是new的一个pd,没有自己写那个下拉框,所以不存在CbPrint 这个控件。。
我是new的一个pd,没有自己写那个下拉框,所以不存在CbPrint 这个控件。。
我这个不用pd直接打印的
我是new的一个pd,没有自己写那个下拉框,所以不存在CbPrint 这个控件。。
我这个不用pd直接打印的
那不行,我自己写了个pd的类,打出来有问题。。用自带的打出来就是好的。。
我这个说不清楚,反正很复杂,是自己做的类似于word的一个winform项目唉。。