6

我试图使用我的 android 应用程序中的标签进行打印,该应用程序使用wifi命令Brother QL-720NW 标签打印机。由于我在打印机上执行了出厂重置,因此出现此错误

问题: ERROR_WRONG_LABEL(表示 sdk 指南中指定的错误卷)错误在打印命令上抛出,因为我在打印机上执行了出厂重置。

代码:

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();
        }
    }
  • 我正在使用这里的示例代码
  • 目标- 我的最终目标是替换模板中的文本并打印,但目前我无法打印任何内容
  • 我正在使用这个Brother SDK。
  • 我尝试了兄弟的android示例代码,它也给出了同样的错误
  • 但是兄弟我的打印应用程序和 Ptouch 软件正在成功打印,没有任何错误。

请帮忙!

谢谢

4

3 回答 3

3

我通过创建一个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意味着您在paperSizeor中有错误的值labelNameIndex。我有一台带有 24 英寸纸张的 P750W 标签打印机。我发现5这个尺寸的价值是好的,但我不知道你的打印机。

于 2014-07-08T14:31:54.190 回答
2

我遇到了同样的问题,并发现您应该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
于 2019-03-18T12:25:45.240 回答
1

TL;DR 我通过设置workPath属性解决了:

printerInfo.workPath = context.cacheDir.Path

我注意到setPrinterInfo返回 false 并且在尝试打印时收到WRONG_LABEL错误代码。调试代码我发现它与Brother SDK所需的文件写入权限有关。该文档令人困惑,并提到需要WRITE_EXTERNAL_STORAGE if workPath未设置。即使拥有此权限,我也无法使其工作。我通过设置workPath属性如上图解决。

于 2020-07-28T23:07:40.343 回答