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

Android打印与兄弟SDK通过WiFi抛出ERROR_WRONG_LABEL尽管选择正确的标签NameIndex

颜均
2023-03-14

我一直在尝试在Android 8.1.0上使用Brother print SDK 3.5.1进行打印。我不断收到错误标签。

这是我使用的代码

    void printPdf() {

        // Specify printer
        final Printer printer = new Printer();
        PrinterInfo settings = printer.getPrinterInfo();
        settings.printerModel = PrinterInfo.Model.QL_810W;
        settings.port = PrinterInfo.Port.NET;
        settings.ipAddress = "192.168.1.73";
        settings.workPath = "storage/emulated/0/Download/";

        // Print Settings
        settings.labelNameIndex = LabelInfo.QL700.W62RB.ordinal();
        settings.printMode = PrinterInfo.PrintMode.FIT_TO_PAGE;
        settings.orientation = PrinterInfo.Orientation.PORTRAIT;
        settings.isAutoCut = true;
        printer.setPrinterInfo(settings);

        // Connect, then print
        new Thread(new Runnable() {
            @Override
            public void run() {
                if (printer.startCommunication()) {
                    PrinterStatus result = printer.printPdfFile("/storage/emulated/0/Download/hello world red.pdf", 1);
                    if (result.errorCode != PrinterInfo.ErrorCode.ERROR_NONE) {
                        Log.d("TAG", "ERROR - " + result.errorCode);
                    }
                    printer.endCommunication();
                }
            }
        }).start();
    }

我的打印机型号是QL-810W,我使用黑色和红色的W62卷。

  • 我已经尝试了示例应用程序,其中在labelNameIndex中设置W62RB打印很好。
  • 用不同的宽度换不同的卷没有帮助。
  • 我还尝试迭代数字0到50并将它们用作labelNameIndex
  • 基于这个线程,我认为问题可能在于指定workPath属性。将workPath设置为getContext(). getCacheDir(). getPath()会导致ERROR_OUT_OF_MEMORY而不是ERROR_WRONG_LABEL。未指定workPath并添加

我修改了兄弟示例应用程序并将其上传到GitHub。该应用程序现在默认启动Activity_PrintPdf.java,其中我在onCreate方法的开头插入了带有硬编码值的打印代码-这可以正常工作并按预期打印PDF文件。

然后我在Android Studio中创建了一个新的空活动项目,复制粘贴了库,将导入添加到构建中。gradle和copy将权限粘贴到AndroidManifest.xml中。然后,我将打印代码复制粘贴在MainActivity.java中的onCreate方法的开头。运行应用程序会导致错误标签。

这是修改后的工作示例应用程序,这是导致错误的应用程序。我想将代码用作我从React Native应用程序调用的本机模块,因此重要的是我要设法从头开始设置打印代码,而不是修改现有的示例应用程序

我用调试器检查了库:在执行打印机时。setPrinterInfo(mPrinterInfo)库内部调用打印机对象的私有布尔createWorkPath(String dirPath)。从该方法返回时,调试器显示源代码与字节码不匹配,并且似乎忘记了创建的目录。这也会在内部设置mResult。errorCode=errorCode。ERROR\u WORKSPATH\u NOT\u SET。然而,代码没有在这里产生任何错误,而是默默地继续,这会导致在尝试打印时出现error\u WRONG\u LABEL。在修改后的示例应用程序中运行相同的代码狙击手效果很好。

如果您能提供帮助或建议下一步尝试,我将不胜感激。

非常感谢。


共有1个答案

杜禄
2023-03-14

我现在已经修复了这个问题,即Brother library无法自动创建临时文件夹,并且没有报告错误,而是继续读取标签信息,后来失败了。基于此线程,现在需要指定运行时文件的读写权限,而不是在AndroidManifest.xml中的编译时权限。正在添加

ActivityCompat.requestPermissions(this,
            new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},1);

在打印代码修复问题之前,在开始创建时。

 类似资料:
  • 我正在创建一个Android应用程序,该应用程序将打印到兄弟QL-720NW标签打印机。我为此创建了一个示例项目。 我已经在libs文件夹中导入了必要的JAR文件,并按照兄弟的示例项目中的建议设置了打印机设置。但是我一直收到标签不正确的错误。 我已经看到以下线程ERROR\u WRONG\u LABEL,当尝试使用Android Brother Sdk为标签打印机无线打印时,出现了类似问题。 根据

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

  • 我正在使用Brother SDK使用P-touch模板打印标签。我有我自己的模板(只有两个文本,没有复杂的)在我的兄弟QL-820NWB标签打印机。 打印正在工作,但我有变音符号的问题。例如“Jan Vomáčka”没有正确打印。(问题是and) 我使用的代码来自他们的SDK手册: 我试着设置不同类型的编码(UTF-8,CP-1250,…),而不是设置空值,但都不能正常工作。 我不确定该换什么?也

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

  • 我有兄弟QL-710W标签打印机,我试图通过WIFI使用兄弟的SDK打印,但每次我得到ERROR_WRONG_LABEL错误, 我已经试过了 使用Android Brother Sdk进行标签打印机无线打印时出错 Android通过WIFI与Brother SDK打印(ERROR\u WRONG\u LABEL) 但没有解决办法, 我的代码如下 然而,Brother的Android应用程序正在成功

  • 我正在使用适用于Android的兄弟打印SDK。我的代码基于手册中所示的示例代码: } 当打印机的盖子打开时,flushPTTPrint()函数会立即返回,状态为ERROR\u cover\u open。这太棒了。 当打印机没有纸时,flushPTTPrint()函数仅在大约三分钟后返回,状态为ERROR_COMMUNICATION_ERROR。不太好。 问题:如何检测打印机何时缺纸?任何方法都可