|
楼主 |
发表于 2019-11-21 08:42:56
|
显示全部楼层
/// <summary>
/// 将字符串发送到打印机方法
/// </summary>
/// <param name="szPrinterName">打印机名称</param>
/// <param name="szString">打印的字符串</param>
/// <returns></returns>
public static bool SendStringToPrinter(string szPrinterName, string szString)
{
bool flag = false;
try
{
IntPtr pBytes;
Int32 dwCount;
Byte[] bytes = Encoding.ASCII .GetBytes (szString );
// 非托管指针
IntPtr pUnmanagedBytes = new IntPtr(0);
int nLength;
nLength = Convert.ToInt32(szString.Length);
// 读取文件内容到字节数组
//bytes = br.ReadBytes(nLength);
// 为这些字节分配一些非托管内存
pBytes = Marshal.AllocCoTaskMem(nLength);
// 将托管字节数组复制到非托管内存指针
Marshal.Copy(bytes, 0, pBytes, nLength);
flag = SendBytesToPrinter(szPrinterName, pBytes, dwCount);
// 释放先前分配的非托管内存
Marshal.FreeCoTaskMem(pBytes);
}
catch (Win32Exception ex)
{
WriteLog(ex.Message);
flag = false;
}
return flag;
}
代码做了修改 可以实现 行打 以及换行了!
谢谢!!
直接调用
PrinterHelper.SendStringToPrinter("打印机名称", 需要打印的字符串 + "\r\n"); 即可实现打印寄换行!!!!
|
|