Интересно, что эта проблема не возникает с другими символами разрыва строки, такими как \x0D. При использовании этих символов QR-код отображается, но разрывы строк не работают должным образом. Например, \x0D не разбивает текст на новые строки; вместо этого текст отображается как одна непрерывная линия. (он переходит на новую строку только тогда, когда я экспортирую отсканированный QR-код в текстовый файл)
Я просто хочу показать данные в QR-код в отдельных строках.
Я использую dll-файл, поставляемый с принтером штрих-кодов. Я предоставлю ссылку на руководство по библиотеке и API в библиотеке, а также предоставлю фрагмент частей, которые больше связаны с моей проблемой.
Я использую POSTEK Принтер Q8/200 и драйвер чайка, который также поставляется с самим принтером.
Код: Выделить всё
QString content = QString::fromUtf8(
"SomeCompany Inc. \n"
"www.SomeCompany.com \n"
"Email: [email protected]"
);
Код: Выделить всё
int DllHandler::drawQRCode(int x, int y, const QString& content) {
return PTK_DrawBarcode2D_QR(x, y, 200 , 175, 0, 2, 1, 0, 8,content.toUtf8().constData());
}
Код: Выделить всё
PTK_DrawBarcode2D_QR = (DrawQRFunc)library.resolve("PTK_DrawBar2D_QR");
Код: Выделить всё
typedef int (*DrawQRFunc)(int, int,int,int,int,int,int,int,int,const char*);
как строки обрабатываются API:
/*
String
Символ кавычки ( ”) обозначает начало и конец строки.
Символ обратной косой черты ( \ ) означает, что следующий за ним символ является литералом и будет закодирован в поле данных
. См. следующие примеры:
символ
Ввести в поле данных
”
\”
\
\
< tr>
0x00 – 0x7F
\x00 – \x7F
- Все команды печати и буквенную команду. Параметры чувствительны к регистру.
- — это «13» десятичной системы USASCII или «0DH» шестнадцатеричной системы, а именно «ввод»
символа.
функция, используемая в API:
/*
PTK_DrawBar2D_QR
Эта функция используется для печати QR-штрих-кода.
Синтаксис:
PTK_DrawBar2D_QR( unsigned int x, беззнаковое целое число y,
беззнаковое целое w, беззнаковое целое v,
беззнаковое int o, беззнаковое int r,
unsigned int m, unsigned int g,
unsigned int s, LPTSTR pstr )
- Параметры:< /p>
Код: Выделить всё
int x; ●X coordinates. int y; ●Y coordinates. Note:1 dot = 0.125 mm. int w; ●Maximum printing width, in dots. int v; ●Maximum printing height, in dots. int o; ●Set the rotate direction, value range: 0~3. int r; ●Set the multiplier values, in dots, value range: (1 - 9). int m; ●Select the coding mode of QR, value range:(0 - 4). int g; ●Select the error correction level of QR, value range: (0 - 3). int s; ●Select the masking pattern of QR, value range: (0 - 8). LPCTSTR pstr; ●A character string.
Ссылка на файл Error.txt.*/
документ:
https://drive.google.com/file/d/1xZTO3B ... drive_link
Информация о строке находится на страницах 2 и 3
информация о функции находится на страницах 22 и 23.
не стесняйтесь задавать любые вопросы, если информация неполная или требуется дополнительная информация. нужно.
Подробнее здесь: https://stackoverflow.com/questions/792 ... rinter-api