当前位置: 首页 > 知识库问答 >
问题:

使用Android Brother Sdk进行标签打印机无线打印时出错

冷正信
2023-03-14

我一直在尝试使用android应用程序中的标签打印,该应用程序使用wifi命令Brother QL-720NW标签打印机。因为我在打印机上执行了工厂重置,所以出现了这个错误

问题:ERROR\u WRONG\u LABEL(表示sdk指南中指定的错误卷)错误在print命令上引发,因为我在打印机上执行了工厂重置。

代码:

void printTemplateSample() 
    {
        Printer myPrinter = new Printer();
        PrinterInfo myPrinterInfo = new PrinterInfo();

        try{
            // Retrieve printer informations
            myPrinterInfo = myPrinter.getPrinterInfo();

            // Set printer informations
            myPrinterInfo.printerModel = PrinterInfo.Model.QL_720NW;
            myPrinterInfo.port=PrinterInfo.Port.NET;
            myPrinterInfo.printMode=PrinterInfo.PrintMode.FIT_TO_PAGE;
//                  :
            myPrinterInfo.paperSize = PrinterInfo.PaperSize.A4;


            myPrinterInfo.ipAddress="192.168.1.13";
            myPrinterInfo.macAddress="00:80:92:BD:35:7D";


            myPrinter.setPrinterInfo(myPrinterInfo);

            // Start creating P-touch Template command print data
//          myPrinter.startPTTPrint(1, null);
           Boolean val= myPrinter.startPTTPrint(6, null);
            Log.i("print", "startPTTPrint "+val);

            // Replace text
            myPrinter.replaceText("abcde");
//          myPrinter.replaceText("12345");

            // Trasmit P-touch Template command print data
            PrinterStatus status=myPrinter.flushPTTPrint();//ERROR thrown here
            Log.i("print", "PrinterStatus  err"+status.errorCode);

        }catch(Exception e){    
            e.printStackTrace();
        }
    }
  • 我正在使用这里的示例代码

请帮帮忙!

谢谢

共有3个答案

杨豪
2023-03-14

TL;通过设置工作路径属性来解决DR I:

printerInfo.workPath = context.cacheDir.Path

我注意到setPrinterInfo返回false,在尝试打印时,我收到了错误的错误代码。调试代码时,我发现这与Brother SDK所需的文件写入权限有关。该文档令人困惑,并提到如果未设置工作路径,则需要使用WRITE\u EXTERNAL\u存储。即使得到这个许可,我也无法使它工作。我通过如上所示设置工作路径属性来解决这个问题。

戚建白
2023-03-14

我也遇到了同样的问题,并发现应该将labelNameIndex字段指定给PrinterInfo对象。我有QL-810W打印机。我尝试了许多价值观,但直到我将其设置为:

   printerInfo.labelNameIndex = LabelInfo.QL700.W62RB.ordinal // -> 17

我通过对0到100之间的所有整数进行for循环并记录结果,直到打印成功为止,计算出了正确的值。我知道这不是最佳解决方案,但我找不到这些代码的任何文档或参考。

下面是我用来指定PrinterInfo对象的代码:

    val printerInfo = PrinterInfo()
    printerInfo.printerModel = PrinterInfo.Model.QL_810W
    printerInfo.port = PrinterInfo.Port.NET
    printerInfo.orientation = PrinterInfo.Orientation.PORTRAIT
    printerInfo.paperSize = PrinterInfo.PaperSize.CUSTOM
    printerInfo.align = PrinterInfo.Align.CENTER
    printerInfo.valign = PrinterInfo.VAlign.MIDDLE
    printerInfo.printMode = PrinterInfo.PrintMode.ORIGINAL
    printerInfo.numberOfCopies = 1
    printerInfo.labelNameIndex = LabelInfo.QL700.W62RB.ordinal // -> 17
    printerInfo.isAutoCut = true
    printerInfo.isCutAtEnd = false
    return printerInfo
松国兴
2023-03-14

我通过创建一个LabelInfo对象解决了这个问题,因为您有一个标签打印机。文件中根本不清楚。您需要在打印机信息之后设置标签信息。

PrinterInfo info = myPrinter.getPrinterInfo();
info.paperSize = PrinterInfo.PaperSize.CUSTOM;

LabelInfo mLabelInfo = new LabelInfo();
mLabelInfo.labelNameIndex = 5;
mLabelInfo.isAutoCut = true;
mLabelInfo.isEndCut = true;
mLabelInfo.isHalfCut = false;
mLabelInfo.isSpecialTape = false;

myPrinter.setPrinterInfo(info);
myPrinter.setLabelInfo(mLabelInfo);

ERROR_WRONG_LABEL表示您在纸张大小labelNameIndex中有错误的值。我有一台带有24"纸张的P750W标签打印机。我发现值5适合这种尺寸,但我不知道适合您的打印机。

 类似资料:
  • 我在标签打印机上打印时遇到了问题。下面的代码在一个上打印4个“标签”(附标签图片)。 下面的代码打印到兄弟QL-500标签打印机上。它打印到3.5"乘1.1"标签上。 如果有人能帮我更好地理解代码,那也太好了。 下面是它打印的内容:

  • 我想从web浏览器的Brother标签打印机打印标签。我知道DYMO有一个JavaScript框架,可以使从浏览器打印变得简单。但我有一个兄弟标签打印机的客户,所以我需要使它工作。 我一直在做一些测试和搜索,令人惊讶的是,关于这个主题的信息如此之少。 到目前为止,我唯一成功使用的浏览器是谷歌Chrome,因为它似乎不打印页眉和页脚。我已经安装了打印机/驱动程序,并创建了尺寸为62 x 29mm的自

  • 我有打印机驱动程序、P-touch编辑器、b-PAC 3.1和客户端工具,都是64位的,从Brother网站下载并安装在我的64位Windows 7笔记本电脑上。P-touch编辑器工作/打印良好。 然而,b-PAC失败,所有样本均无效。我调试了代码: 其中,

  • 问题内容: 使用Java,我需要在未本地安装的网络打印机上进行打印。我只知道打印机名称。我看过的所有教程都以类似以下内容开始: 问题是可能没有安装打印机,因此在这种情况下服务将为空。我需要直接设置打印机名称,而不仅仅是通过可见的打印机枚举。 问题答案: 如果Java AWT Printing未向运行打印应用程序的Windows / Active Directory用户注册,则无法通过路径找到打印机

  • 我目前的工作是创建机械图纸,用于发送给客户和作为施工图。当我的绘图完成后,我导出一个. pdf文件,并将其发送给客户端。 我们的客户非常喜欢黑白画,所以我试着提供他们。但是我用来画画的软件效果不好。它只有一个选项“所有颜色都是黑色”,我的画上有一些白色的“隐藏线”。当然,这些显示使用所有颜色作为黑色选项。 我找到了一个解决方案,那就是使用pdf打印机。效果很好,效果也很好。 现在我想打印这个。pd

  • 为了处理文字和图形而使用视讯显示器时,设备无关的概念看来非常完美,但对于打印机,设备无关的概念又怎样呢? 总的说来,效果也很好。在Windows程序中,用于视讯显示器的GDI函数一样可以在印表纸上打印文字和图形,在以前讨论的与设备无关的许多问题(多数都与平面显示的尺寸、分辨率以及颜色数有关)都可以用相同的方法解决。当然,一台打印机不像使用阴极射线管的显示器那么简单,它们使用的是印表纸。它们之间有一