Команда печати мелким шрифтом для принтера Bluetooth - PullRequest
0 голосов
/ 11 июля 2019

Я работаю над реализацией термопринтера Bluetooth в Xamarin android, где я могу перезагрузить принтер и добавить три дополнительные строки, используя команды печати, но сталкиваюсь с проблемой сброса шрифтов до наименьшего размера.

Я перезагружаю принтер с помощью команды "btInitialise", затем пытаюсь установить мелкие шрифты с помощью команды "btFontB", а затем добавляю 3 пустых дополнительных строки с помощью "btAdvance3Lines".

Команда в "btFontB"не работает должным образом, или команда неверна, или способ, которым я пытаюсь достичь, неверен.Помощь будет оценена здесь.

using (BluetoothAdapter bluetoothAdapter = BluetoothAdapter.DefaultAdapter)
            {
                BluetoothDevice device = (from bd in bluetoothAdapter?.BondedDevices where bd?.Name == deviceName
 select bd).FirstOrDefault();

                try
                {
                    using (BluetoothSocket bluetoothSocket = device?.
                        CreateRfcommSocketToServiceRecord(
                        UUID.FromString("00001101-0000-1000-8000-00805f9b34fb")))
                    {
                        if (bluetoothSocket == null)
                            return;

                        string btInitialise = "\x001b\x0040\n";
                        string btFontB = "\x001b\x0021\x0000\n";
                        string btAdvance3Lines = "\x001b\x0064\x0003\n";

                        await bluetoothSocket.ConnectAsync();

                        byte[] resetPrinter = Encoding.ASCII.GetBytes(btInitialise);
                        await bluetoothSocket.OutputStream.WriteAsync(resetPrinter, 0, resetPrinter.Length);

                        byte[] setFont = Encoding.ASCII.GetBytes(btFontB);
                        await bluetoothSocket.OutputStream.WriteAsync(setFont, 0, setFont.Length);



                        byte[] buffer = Encoding.UTF8.GetBytes(text);
                        await bluetoothSocket.OutputStream.WriteAsync(buffer, 0, buffer.Length);


                        byte[] addLines = Encoding.ASCII.GetBytes(btAdvance3Lines);
                        await bluetoothSocket.OutputStream.WriteAsync(addLines, 0, addLines.Length);
                    }
                }
                catch (Exception exp)
                {
                    throw exp;
                }
            }
...