weixin_38040279 2023-12-06 15:41 采纳率: 50%
浏览 5

C# 调用 codesoft2021 的Lppx2.tlb 打印很慢

C# 调用 codesoft2021 的Lppx2.tlb 打印很慢,慢5秒左右,求大神帮忙看看具体什么问题,只贴了部分代码
try
{
labApp = new LabelManager2.ApplicationClass();
labApp.Documents.Open(labFile, false); //调用设计好的label文件

            doc = labApp.ActiveDocument;

            if (xmlflag == "0")
            {
                for (int i = 1; i <= doc.Variables.Count; i++)
                {
                    //Console.WriteLine("获取到的变量名为:" + doc.Variables.Item(i).Name.ToString());
                    varList.Add(doc.Variables.Item(i).Name.ToString());
                    for (int a = 0; a < Attributes_Name.Length; a++)
                    {
                        if (varList[i - 1].ToString() == Attributes_Name[a].ToString())
                        {
                            doc.Variables.FormVariables.Item(varList[i - 1].ToString()).Value = Attributes_Value[a];                                
                        }
                        if (varList[i - 1].ToString() == "Barcode")
                        {
                            doc.Variables.FormVariables.Item("Barcode").Value = Barcode;
                        }
                    }
                }

                /*****************************************************************************
                //doc.Variables.FormVariables.Item("TPGN_Revision").Value      = TPGN_Revision;
                //doc.Variables.FormVariables.Item("Project").Value            = Project;
                doc.Variables.FormVariables.Item("Part_Number").Value        = Attributes_Name[0]; 
                doc.Variables.FormVariables.Item("PART_NAME").Value          = PART_NAME;
                doc.Variables.FormVariables.Item("TRACKING_NUMBER").Value    = TRACKING_NUMBER;
                doc.Variables.FormVariables.Item("JOYSON_PART_NUMBER").Value = JOYSON_PART_NUMBER;
                /*****************************************************************************/
            }
            else
            {
                /*****************************************************************************/
                doc.Variables.FormVariables.Item("TRACKING_NUMBER").Value     = YYMMDD + TRACKIN;
                doc.Variables.FormVariables.Item("Barcode").Value             = Barcode;
                doc.Variables.FormVariables.Item("PART_NAME").Value           = PARTNAME;
                doc.Variables.FormVariables.Item("Part_Number").Value         = HKMCPARTNUMBER;
                doc.Variables.FormVariables.Item("JOYSON_PART_NUMBER").Value  = JOYSONPARTNUMBER;
                /*****************************************************************************/
            }

            string printerName = this.cmbPrinter.Text;
            doc.Printer.SwitchTo(printerName);

            doc.PrintDocument(1);
            doc.FormFeed();
  • 写回答

3条回答 默认 最新

  • Leodong. 2023-12-06 16:01
    关注

    该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索并已验证,得到内容具体如下:
    这个问题可能是由于在调用Lppx2.tlb时,代码没有正确地处理COM对象。你可以尝试以下方法来解决这个问题:

    1、 确保你的项目中引用了正确的COM库。你可以在项目属性中检查这一点。确保"生成"选项卡下的"引用"列表中包含了Lppx2.tlb所在的文件夹。

    2、 使用using语句来确保COM对象在使用完毕后被正确释放。例如,在你的代码中添加以下内容:

    using LabelManager2;
    

    3、 尝试将调用Lppx2.tlb的代码放在一个单独的方法中,并在该方法中使用try-catch语句来捕获可能的异常。这样,你可以更好地了解问题所在。例如:

    public void PrintLabel()
    {
        try
        {
            // 你的代码
        }
        catch (Exception ex)
        {
            MessageBox.Show("打印标签时发生错误: " + ex.Message);
        }
    }
    

    4、 如果问题仍然存在,你可以尝试使用其他方法来实现相同的功能,而不是直接调用Lppx2.tlb。例如,你可以使用C#的System.Drawing命名空间中的类和方法来创建和打印标签。


    如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

    评论

报告相同问题?

问题事件

  • 创建了问题 12月6日

悬赏问题

  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)