C#调用codesoft打印的问题。

hejingsong007 2010-04-19 02:30:14
调用CODESOFT打印,程式每开启一次会在进程中增加一LPPA进程,如何在程式关闭时将此进程释放。因为这个函数调用几次之后就会出现unhandled的错误。

打印函数如下:
public bool PrintSNBarCode(string labelname, string var1, int marginleft, int margintop,int qty)
{
ApplicationClass lbl = new ApplicationClass();

//取标签路径
string labelpath = GetLabelPath();

try
{
lbl.Documents.Open(@"" + labelpath + "" + labelname + "", false);// 调用设计好的label文件
Document doc = lbl.ActiveDocument;

//设置标签位置
doc.Format.MarginLeft = doc.Format.MarginLeft + marginleft;
doc.Format.MarginTop = doc.Format.MarginTop + margintop;

//给参数传值
doc.Variables.FormVariables.Item("SN").Value = "" + var1 + "";
//打印
doc.PrintDocument(qty);
return true;
}
catch (Exception ex)
{
return false;
}

finally
{
lbl.Quit(); //退出
}

}
...全文
917 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
沐秋 2011-10-18
  • 打赏
  • 举报
回复
每打印一张条码后手动杀死进程 KillProcess("lppa")
     /// <summary>
/// 强制杀死进程
/// </summary>
/// <param name="ProcessName">进程名称</param>
private void KillProcess(string ProcessName)
{
try
{
foreach (Process p in Process.GetProcessesByName(ProcessName))
{
if (!p.CloseMainWindow())
{
p.Kill();
}
}
}
catch
{
System.Console.WriteLine("释放进程" + ProcessName + "失败!");
}
}
hejingsong007 2010-04-19
  • 打赏
  • 举报
回复
怎么销毁,不会,请指教
liuh6 2010-04-19
  • 打赏
  • 举报
回复
打印完成后,把用到的ApplicationClass lbl,Document doc 手动销毁一下!
平生我自如 2010-04-19
  • 打赏
  • 举报
回复
帮顶一下~~~~~~~~~~~~

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧