public bool PrintMAC(DataTable dtb, string barcode, string Prefix, string SerNum, int ptnum, string model, out string error)
{
Kill("lppa");
model = AppDomain.CurrentDomain.BaseDirectory + model;//取当前应用程序域运行的目录
LabelManager2.ApplicationClass PrintApp = new LabelManager2.ApplicationClass();
try
{
LabelManager2.Document PrintDoc = PrintApp.ActiveDocument;
PrintDoc = PrintApp.Documents.Open(model, false);
if (PrintDoc == null)
{
error = "模版未找到";
return false;
}
if (!string.IsNullOrEmpty(barcode))
{
PrintDoc.Variables.Counters.Item(barcode).Prefix = Prefix;
PrintDoc.Variables.Counters.Item(barcode).Value = SerNum;
}
for (int j = 0; j < dtb.Rows.Count; j++) //行
{
for (int i = 0; i < dtb.Columns.Count; i++) //列
{
try
{
string col = dtb.Columns[i].ColumnName.ToString();
string txt = dtb.Rows[j][col].ToString();
PrintDoc.Variables.FormVariables.Item(col).Value = txt;
}
catch (Exception ex)
{
error = ex.Message;
return false;
}
}
PrintDoc.PrintDocument(1);
}
error = "打印成功";
return true;
}
catch (Exception ex)
{
error = ex.Message;
return false;
}
finally
{
PrintApp.Documents.CloseAll(false);
PrintApp.Quit();
}
}
问题是调试的时候报错,错误信息就是“未将对象引用设置到对象的实例”,我也找到了为空的那一句,但是,我不知道它为什么会为空。
下个断点,F10一步一步来,能找到哪个对象为空的。