gpt4 book ai didi

android - 在android中打印时如何更改字体大小?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:36:19 26 4
gpt4 key购买 nike

我正在通过我的 android 手机将文本发送到蓝牙打印机。 打印机和我的设备都通过蓝牙连接。它工作正常,我在纸上得到了所需的文本。

我的问题是:

打印机采用文本的默认字体大小。我想更改要打印的文本的字体大小。

我怎样才能做到这一点?

这是我在蓝牙连接后打印文本的代码:

private void connect_print(BluetoothDevice bluetoothDevicess)  {
// some code
printData();
// some code
}

printData() 方法

private void printData() {
// TODO Auto-generated method stub
String str = new String("This is the text sending to the printer");
String newline = "\n";
try {
out.write(str.getBytes(),0,str.getBytes().length);
Log.i("Log", "One line printed");
} catch (IOException e) {
Toast.makeText(BluetoothDemo.this, "catch 1", Toast.LENGTH_LONG).show();
e.printStackTrace();
Log.i("Log", "unable to write ");
flagCheck = false;
}
try {
out.write(newline.getBytes(),0,newline.getBytes().length);
} catch (IOException e) {
Log.i("Log", "Unable to write the new line::");
e.printStackTrace();
flagCheck = false;
}
flagCheck = true;
}

我想更改发送到打印机进行打印的文本的字体大小字体样式。请帮助我实现这一目标。如果有人可以建议任何链接,那么我也会很感激他/她。帮我找到解决这个问题的方法

最佳答案

您好,您在我对同一主题的回答上写了这个:

I have already asked the same question in this thread HERE, but didnt yet got any response. Got only one answer but it was not helped me.

Let see whether it help you. HERE

If you have done with it then please answer me in my thread. I will definitely appreciate you.

现在我知道怎么做了,我必须应用反向工程并从市场上反编译一个 .apk,在 Linux 上使用 dex2jar,然后用 java 反编译器打开 jar...试试这个...当你写这个命令:

out.write(str.getBytes(),0,str.getBytes().length);

你正在向方法发送一个 byte[] 数组,你可以在发送真正的 byte[] 数组之前修改发送另一个 byte[] 数组的格式...

byte[]数组的默认格式是这样的:

byte[] arrayOfByte1 = { 27, 33, 0 };

所以你可以试试这个:

byte[] format = { 27, 33, 0 };

out.write(format);

out.write(str.getBytes(),0,str.getBytes().length);

这些行我会打印默认格式的文本,但是你这样做:

 byte[] format = { 27, 33, 0 };

format[2] = ((byte)(0x8 | arrayOfByte1[2]));

out.write(format);

out.write(str.getBytes(),0,str.getBytes().length);

它将以粗体样式打印文本......你可以尝试这种其他格式的数组:

            // Bold
format[2] = ((byte)(0x8 | arrayOfByte1[2]));

// Height
format[2] = ((byte)(0x10 | arrayOfByte1[2]));

// Width
format[2] = ((byte) (0x20 | arrayOfByte1[2]));

// Underline
format[2] = ((byte)(0x80 | arrayOfByte1[2]));

// Small
format[2] = ((byte)(0x1 | arrayOfByte1[2]));

你也可以组合它,然后如果你喜欢小而粗的文本,取消注释这些数组分配,例如:

 byte[] format = { 27, 33, 0 };

// Bold
format[2] = ((byte)(0x8 | arrayOfByte1[2]));
// Height
format[2] = ((byte)(0x10 | arrayOfByte1[2]));
// Width
format[2] = ((byte) (0x20 | arrayOfByte1[2]));
// Underline
// format[2] = ((byte)(0x80 | arrayOfByte1[2]));
// Small
// format[2] = ((byte)(0x1 | arrayOfByte1[2]));
out.write(format);
out.write(str.getBytes(),0,str.getBytes().length);

这最后的代码打印了最大的文本大小......我希望这可以帮助你......

Pdta:对不起我的英语

Pdta2:我正在尝试打印图像,你知道怎么做吗??

关于android - 在android中打印时如何更改字体大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12257164/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com