java中的ESC/POS图像

2024-02-05

我需要在热敏打印机(SAM4S ELLIX40)中打印此图像。

我一直在搜索和测试几个代码,但实际上没有任何效果,他们说“使用这个命令,你会看到一行”,我发送了它,但没有任何反应。

我尝试了手册中的命令:

  • ESC * m nL nH d1…dk
  • GS * x y d1…dk

我最常尝试的是ESC *,但我一直不明白如何设置nL和nH。

String text_to_print = "Hello world!";
DocPrintJob dpj = selected_printjob.createPrintJob();
InputStream stream = new ByteArrayInputStream((text_to_pring).getBytes());
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
Doc doc = new SimpleDoc(stream, flavor, null);
dpj.print(doc, null);

Pedro 的问题(我不知道如何引用它):“有了这个库,我必须改变将数据发送到项目中打印机的方式,对吧?”

回答你的最后一条评论,我认为混合来自不同库的调用是完全不合适的,但是,偶尔,这种情况可能会发生......让我们走吧,在发送图像之前,我们需要对齐 hello world // I 的示例认为要向热敏打印机(ESC / POS)发送问候语,您可以这样编写代码。有了这个种子,您可以根据需要输入新的 ESC / POS 命令。如果您的遗留代码可以嵌入到此示例中,那么您的问题的答案是肯定的,escpos_coffee 库与 OutputStream 配合使用,并且可以静默嵌入,如以下示例所示。 这段代码使用escpos_咖啡 https://github.com/anastaciocintra/escpos-coffee

package pedrojoaquim;

import escpos.EscPos;
import escpos.image.BitonalThreshold;
import escpos.image.EscPosImage;
import escpos.image.RasterBitImageWrapper;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.print.Doc;
import javax.print.DocFlavor;
import javax.print.DocPrintJob;
import javax.print.PrintException;
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.SimpleDoc;

public class PedroJoaquim {

    public void printImage() throws PrintException, IOException{
        String text_to_print = "Hello world!";
        PrintService foundService = PrintServiceLookup.lookupDefaultPrintService();
        DocPrintJob dpj = foundService.createPrintJob();

        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        /// your legacy commands ini
        // initialize printer
        outputStream.write(27); // ESC
        outputStream.write('@');

        // print text
        outputStream.write(text_to_print.getBytes());

        // feed 5 lines
        outputStream.write(27); // ESC
        outputStream.write('d');
        outputStream.write(5);

        // cut paper
        outputStream.write(29); // GS
        outputStream.write('V');
        outputStream.write(48);

        /// your legacy commands end

        /// fitting lib calls on same outputStream
        EscPos escpos = new EscPos(outputStream);

        RasterBitImageWrapper imageWrapper = new RasterBitImageWrapper();
        BufferedImage  githubBufferedImage = ImageIO.read(new File("/Users/marco/Downloads/smile.jpg"));
        EscPosImage escposImage = new EscPosImage(githubBufferedImage, new BitonalThreshold()); 
        // print smile image...
        escpos.write(imageWrapper, escposImage);        
        // lib end
        /// legacy continues from this point

        // print text
        outputStream.write(" Joaquim's Smile image".getBytes());

        // feed 5 lines
        outputStream.write(27); // ESC
        outputStream.write('d');
        outputStream.write(5);

        // cut
        outputStream.write(29); // GS
        outputStream.write('V');
        outputStream.write(48);


        // do not forguet to close outputstream
        outputStream.close();
        ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());


        DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
        Doc doc = new SimpleDoc(inputStream, flavor, null);
        dpj.print(doc, null);


    }

    public static void main(String[] args) throws IOException {
        PedroJoaquim obj = new PedroJoaquim();
        try {
            obj.printImage();
        } catch (PrintException ex) {
            Logger.getLogger(PedroJoaquim.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java中的ESC/POS图像 的相关文章

随机推荐

  • 优化 JavaScript 代码以小写 JSON 属性名称

    我正在开发一个 Web 应用程序 该应用程序接收具有大写属性名称的 JSON 数据 我需要这些属性名称为小写 因此我使用一个函数递归地循环遍历 JSON 对象并将它们转换为小写 问题是我的 JSON 回复可能会变得非常大 我希望该函数能够表
  • 区分 tkinter 菜单中两个相同项目的问题

    我创建的程序允许用户在键盘上输入的任何字母都写在海龟图形画布上 在我的程序中 我还创建了一个 Python 菜单 每次用户执行函数 绘制字母时 都会向该菜单写入一个 Point 对象 针对每个字母函数 但是 由于我的程序的性质 用户还可以将
  • Helm 和 Kustomize 之间有什么区别?

    我已经使用 Kubernetes 和 Helm 一段时间了 现在第一次接触 Kustomize 但 Kustomize 和 Helm 之间到底有什么区别呢 两者只是捆绑 K8s 元素 例如服务 部署等 的不同解决方案吗 或者同时使用 Hel
  • 为什么 String.raw 不能以反斜杠结尾? [复制]

    这个问题在这里已经有答案了 字符串 raw https developer mozilla org en US docs Web JavaScript Reference Global Objects String raw可用于创建包含反斜
  • 骆驼聚集策略

    我正在解析一个 CSV 文件 将其分割并通过骆驼中的多个处理器进行路由 有两个端点 一个有错误的数据 而另一个有经过验证的数据 我需要汇总数据的建议 假设 CSV 文件有 10 条记录 其中 6 条到达一个端点 4 条到达另一个端点 我如何
  • Apache 307 Redirect 重定向 POST 数据

    PayPal 很烦人 如果您有数千名客户订阅POSTIPN 即时付款通知 到某个 URL 您永远无法更改该 URL 如果您希望将 IPN 发送到另一个 URL 他们的建议 告诉您的所有客户在更改 IPN URL 后取消订阅并开始新订阅 伟大
  • 如何将每个回调包装在一个地方以改进错误处理

    在我的 GWT 应用程序中 有许多不同的异步调用使用许多不同的服务对服务器进行 为了更好地处理错误 我想包装所有回调 以便我可以处理异常 例如InvocationExceptions在一个地方 一个超类实现AsyncCallback并不是真
  • 如何为 XAttribute 指定命名空间,同时拥有另一个具有相同值的命名空间?

    我想要做的只是一个用于将数据表导出到 Excel 的 XML 文档 所以我需要的是这样的
  • 将文本框中的字符串转换为 dd/mm/yyyy 日期

    如何将文本框中的字符串转换为 dd mm yyyy 日期形式 我的意思是 Date d Date textBox Text 我想将它用作 SQL 中的参数Date数据类型如下 command Parameters Add new Npgsq
  • iOS EventKit - 事件未从日历中删除

    我正在使用以下代码删除事件 store requestAccessToEntityType EKEntityTypeEvent completion BOOL granted NSError error if granted EKEvent
  • C:函数调用时传递参数时的类型转换

    来自 C 编程语言 第二版 由于函数调用的参数是表达式 因此当参数传递给函数时也会发生类型转换 如果没有函数原型 char 和short 会变成int float 会变成double 通过阅读文本 我得到的印象是 除非您使用强制转换或函数原
  • 计算花费的时间总和

    我有一个 SQL 查询来计算并发作业所花费的时间 这是查询 SELECT user concurrent program name DECODE phase code C Completed phase code phase code DE
  • 向 UIView 添加渐变的现代技术

    我知道向 UIView 添加背景渐变的几种方法 我想知道最有效和可扩展的方法是什么 为什么 以下是我使用过的技术 创建 UIView 的子视图并覆盖drawRect 我在其中在当前上下文中绘制渐变 A 当使用上面的渐变时 用视图边界创建它
  • Python - 如何强制使用工厂方法来实例化对象?

    我有一组相关的类 它们全部继承自一个基类 我想使用工厂方法来实例化这些类的对象 我想这样做是因为这样我可以在将对象返回给调用者之前将对象存储在以类名为键的字典中 然后 如果有对特定类的对象的请求 我可以检查我的字典中是否已存在该对象 如果没
  • AWS Lambda Node.js 全 ICU

    我使用以下命令在本地运行 node js 应用程序 node icu data dir node modules full icu app local js 如何在AWS Lambda环境中指定icu data dir Thanks 您应该
  • JPA 将 STRING 列值连接成单个值,就像聚合函数一样

    是否可以使用 JPA 拥有一个自定义聚合函数来扩展 concat 以便将列值连接成单个字符串 我最近在使用 JPA 和 H2 数据库时遇到了同样的问题 我试着打电话给组连接 http www h2database com html func
  • 有没有办法在 cocoapods 中使用拉取请求?

    有了 swift 3 许多 cocoapods 都在努力跟上每个测试版带来的变化 有时这些更改不会很快合并到分支中 在这些情况下 有没有办法使用分支的拉取请求 例子 https github com MengTo Spring pull 1
  • 为什么 Ubuntu docker 镜像不是虚拟机 [重复]

    这个问题在这里已经有答案了 我明白了虚拟机和容器之间的巨大区别 但这让我对 Ubuntu 容器如何存在感到困惑 这对我来说感觉很矛盾 因为 Ubuntu 是一个操作系统 https hub docker com ubuntu https h
  • 未知属性 onItemSelected/onCheckedChanged

    我创建了 SwitchCompat 并添加了android onCheckedChanged 一切正常 但 Android Studio 将此属性标记为警告 描述 未知属性 android onCheckedChanged AppCompa
  • java中的ESC/POS图像

    我需要在热敏打印机 SAM4S ELLIX40 中打印此图像 我一直在搜索和测试几个代码 但实际上没有任何效果 他们说 使用这个命令 你会看到一行 我发送了它 但没有任何反应 我尝试了手册中的命令 ESC m nL nH d1 dk GS