- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
使用 Esc/Pos,我想将位图图像上传到打印机上的 NV 显存。
我正在使用 GS ( L / GS 8 L
<Function 67>
Esc/Pos 手册。
我可以使用 <Function 65>
和 <Function 66>
删除所有或一个图形。
我知道在将位图添加到函数时我遗漏了一些东西。
这是我的命令字符串,包括位图。 bitmapString
删除了位图的文件头和信息头(前 62 个字节)(DataOffset)。:
String bitmapString = new String(bitmapBytes, Charsets.US_ASCII);
bitmapString = bitmapString.substring(DataOffset, bitmapStringSize);
String commandString = "";
int commandLength = (bitmapStringSize.length) + 11;
pL = commandLength % 256;
if (commandLength < 256) {
pH = 0;
} else {
pH = (commandLength - pL) / 256;
}
xL = bitmapWidth % 256;
if (bitmapWidth < 256) {
xH = 0;
} else {
xH = (bitmapWidth - (bitmapWidth % 256)) / 256;
}
yL = bitmapHeight % 256;
if (bitmapHeight < 256) {
yH = 0;
} else {
yH = (bitmapHeight - (bitmapHeight % 256)) / 256;
}
commandString
+= Utils.H("1B")// 27
+ Utils.H("40") // 64
+ Utils.H("1B") // 27
+ Utils.H("3D") // 61
+ Utils.H("01") // 1
+ Utils.H("1D") // GS = 29
+ Utils.H("28") // ( = 40
+ Utils.H("4C") // L = 76
+ Utils.D(pL) // pL
+ Utils.D(pH) // pH
+ Utils.H("30") // m = 48
+ Utils.H("43") // fn = 67
+ Utils.H("30") // a = 48
+ Utils.H(KC1) // kc1
+ Utils.H(KC2) // kc2
+ Utils.H("01") // b = 1
+ Utils.D(xL) // xL
+ Utils.D(xH) // xH
+ Utils.D(yL) // yL
+ Utils.D(yH) // yH
+ Utils.H("31");// c = 49
commandString += bitmapString;
我正在使用 ePOS-Print.jar 打开并写入打印机:
EpsonIo epsonio = new EpsonIo();
byte[] commandBytes = commandString.getBytes(Charsets.US_ASCII);
epsonio.open(DevType.BLUETOOTH, MAC, null, ESCPosService.this);
while (n > 0) {
epsonio.write(commandBytes, i, n > bufferSize ? bufferSize : n, SEND_TIMEOUT);
Thread.sleep(450);
i += bufferSize;
n -= bufferSize;
}
但是当我打印图形时它变形了:
最佳答案
我已经解决了这个问题。
发送的位图字节必须使用下面的方法进行解码。该方法将位图像素转换为单色字节。 1 或 0。
希望这对 future 的人有所帮助!
public static byte[] decodeBitmap(byte[] bitmapBytes) {
Bitmap bmp = BitmapFactory.decodeByteArray(bitmapBytes, 0, bitmapBytes.length);
int zeroCount = bmp.getWidth() % 8;
String zeroStr = "";
if (zeroCount > 0) {
for (int i = 0; i < (8 - zeroCount); i++) {
zeroStr = zeroStr + "0";
}
}
List<String> list = new ArrayList<>();
for (int i = 0; i < bmp.getHeight(); i++) {
StringBuilder sb = new StringBuilder();
for (int j = 0; j < bmp.getWidth(); j++) {
int color = bmp.getPixel(j, i);
int r = (color >> 16) & 0xff;
int g = (color >> 8) & 0xff;
int b = color & 0xff;
// if color close to white,bit='0', else bit='1'
if (r > 160 && g > 160 && b > 160)
sb.append("0");
else
sb.append("1");
}
if (zeroCount > 0) {
sb.append(zeroStr);
}
list.add(sb.toString());
}
List<String> bmpHexList = binaryListToHexStringList(list);
List<String> commandList = new ArrayList<>();
commandList.addAll(bmpHexList);
return hexListToBytes(commandList);
}
关于JAVA ESC Pos上传NV图形到打印机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37262647/
现在使用 nv.d3 示例中的 stackedAreaChart(),当您将鼠标悬停在时间序列中的某个点上时,您会得到一个工具提示。 我垂直对齐了 3 个时间序列。如果鼠标悬停在其中任何一个点上,我希
我正在尝试使用一些非核心硬件计数器,例如:skx_unc_imc0-5::UNC_M_WPQ_INSERTS .它应该计算写入挂起队列的分配数量。该机有2颗Intel Xeon Gold 5218 C
我正在使用 NVD3.js 库来生成图形。我尝试在其中添加折线图并得到上述错误。如何解决? 我正在尝试这个 here 最佳答案 其实我发现,问题是文件夹结构。 angular-nvd3 网站自带的例子
Closed. This question needs debugging details。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。 4年前关闭。 I
我遇到了一些奇怪的事情!我为此使用了源代码:http://nvd3.org/ghpages/stackedArea.html#source_code 我在开头添加了这两行: 但是当我运行它时,它说
我是 Ubuntu 和网络开发的新手。我已经使用 nvd3 在我的一个项目中构建了一些折线图。最近我需要自定义这些折线图,我通过在 nv.d3.js 文件中进行一些编辑来实现。现在我正在尝试缩小该文件
v()有什么区别和 nv() oracle Apex中的功能? 我遇到了 nv()函数,我唯一能让谷歌吐出来的是 nvl()功能。 apex_custom_auth.post_login(
我留下了使用前一位开发人员的 nv.d3.js 构建的数据可视化图表,我目前正在尝试编辑饼图以将饼图定位在顶部,将标签定位在底部。这是一个视觉示例的 fiddle 。 https://jsfiddle
在我开始防止它变成一英里长的只写公式之前,我需要一些关于如何改进我的概念的想法...... 我正在尝试做的,以图形方式,是这样的: 我有两行有 4 个必需单元格(直线)和 4 个可选单元格(虚线),我
我正在尝试使用此处正确区域中的 NC/NV 服务器在 Azure 上创建 Windows 10 Pro VM:https://azure.microsoft.com/en-au/regions/ser
我有以下命令行交互说明的问题: $ wget www.google.com -nv >> out.log 2014-10-28 21:41:43 URL:http://www.google.com/
当从客户端使用此库的 sendBinary 时,我在服务器中得到的全是 0 ;( 此页面要求我添加更多描述,但下面的代码简单明了,应该可以 self 解释...... 客户端代码: private W
是否有任何方法可以捕获第 1/3 层 RF 相关信息或从 Android、Qualcomm 设备获取 NV 项目? 我从androiddocumentation中找到了一些参数我也试过 Qualcom
我使用“ssh -X machine”连接到远程 Linux 计算机,然后运行图形应用程序,因此它的窗口使用 X Window 显示在我的本地 OS X Lion 计算机上。我收到错误 “Xlib:显
我使用 nvd3 有用的预打包图表制作了一个堆积折线图。 我的图表可以很好地完成大部分功能,但每当我单击特定系列时,都会出现错误“未捕获类型错误:无法读取未定义的属性“y””,并且图表不会调整大小以仅
我正在尝试在node.js项目中创建一个virtualenv来管理nodejs依赖项,例如grunt、bower等。 尝试使用nodeenv来实现这一点。 但它没有得到认可。我同时使用了 npm in
所以我有一些看起来像这样的 HTML: 用相应的CSS like, svg { /*display: block;*/
我的数据框包含大约 26k 行和 129 个变量。我已经确保所有变量都是数字并且没有任何 NA 值(使用 na.omit)。在我的数据框上使用函数 prcomp() 告诉我“x 中有无限值或缺失值”。
我正在使用 nv.models.lineWithFocusChart ,我在这里展示了一些每小时的测量值。所以 x 域是日期。 我需要的是在 X 轴上每小时显示一个刻度: 00:00 01:00 02
我尝试在 ClustOfVar 包中应用稳定性函数并收到如下错误消息: Error in La.svd(x, nu, nv) : error code 1 from Lapack routine 'd
我是一名优秀的程序员,十分优秀!