Qt + TSC 打印机使用
立即下载
资源介绍:
Qt + TSC 打印机简单使用,打印条码,二维码,文字 功能
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::MainWindow), tscdll("TSCLIB.dll") {
ui->setupUi(this);
about = (TSCabout)tscdll.resolve("about");
openport = (TSCopenport)tscdll.resolve("openport");
closeport = (TSCcloseport)tscdll.resolve("closeport");
sendcommand = (TSCsendcommand)tscdll.resolve("sendcommand");
tscwindowsfont = (TSCwindowsfont)tscdll.resolve("windowsfont");
downloadpcx = (Downloadpcx)tscdll.resolve("downloadpcx");
}
MainWindow::~MainWindow() { delete ui; }
void MainWindow::on_btn_barcode_clicked() {
if (!tscdll.load()) {
qDebug() << "加载DLL失败!";
}
QString text = ui->lE_barcode->text();
/*
barcode(a,b,c,d,e,f,g,h,i)
说明:使用条码机内部条码打印。
参数:
a:字符串类型,条码X方向起始点,以点(point)表示。200dpi-1点=1/8mm,300dpi-1点=1/12mm,600dpi-1点=1/24mm。
b:字符串类型,条码Y方向起始点,以点(point)表示。200dpi-1点=1/8mm,300dpi-1点=1/12mm,600dpi-1点=1/24mm。
c:字符串类型,128:Code128,字符集A/B/C自动转换;128M,Code128,字符集A/B/C手动转换;EAN128,字符集A/B/C自动转换;25:交叉25码;25C:带校验位的交叉25码;39:Code39;39C:带校验位的Code39码;93:Code93;EAN13:EAN13;EAN13+2:带2个增位的EAN13;EAN13+5:带5个增位的EAN-13;EAN8:EAN8;EAN8+2:带2个增位的EAN8;EAN8+5:带5个增位的EAN8;CODA:库德巴码;POST:Postnet;UPCA:UPC-A;UPCA+2:带2个增位的UPC-A;UPCA+5:带5个增位的UPC-A;UPCE:UPC-E;UPCE+2:带2个增位的UPC-E;UPCE+5:带5个增位的UPC-E。
d:字符串类型,设定条码高度,高度以点来表示。
e:字符串类型,设定是否打印条码下面的文字,0-不打印文字,1-打印文字。
f:字符串类型,设定条码旋转角度。0-旋转0°,90-旋转90°,180-旋转180°,270-旋转270°。
g:字符串类型,设定条码窄Bar比例因子。
h:字符串类型,设定条码宽Bar比例因子。
i:字符串类型,条码内容。
*/
QString barCodeCMD =
QString("BARCODE %1,%2,\"128\",30,0,0,1,1,\"%3\"")
.arg(QString::number(100), QString::number(100), text);
// 设置打印机型号
openport("TSC TE244");
// 设置标签纸大小
sendcommand("SIZE 65 mm, 120 mm");
// 设置打印方向
sendcommand("DIRECTION 1");
// 清空打印机缓存
sendcommand("CLS");
// 打印条形码
sendcommand(barCodeCMD.toLocal8Bit().data());
sendcommand("PRINT 1");
closeport();
}
void MainWindow::on_btn_qrcode_clicked() {
if (!tscdll.load()) {
qDebug() << "加载DLL失败!";
}
QString text = ui->lE_qrcode->text();
/*
qrcode(a,b,c,d,e,f,g,h,i)
说明:使用条码机内部条码打印。
参数:
a:字符串类型,条码X方向起始点,以点(point)表示。200dpi-1点=1/8mm,300dpi-1点=1/12mm,600dpi-1点=1/24mm。
b:字符串类型,条码Y方向起始点,以点(point)表示。200dpi-1点=1/8mm,300dpi-1点=1/12mm,600dpi-1点=1/24mm。
c:字符串类型,错误纠正能力等级。 L-7%,M-15%,Q-25%,H-30%
d:字符串类型,设定条码高度,高度以点来表示。1~10(单位dot)
e:字符串类型,自动生成编码/手动生成编码。A-自动(建议使用),M-手动
f:字符串类型,设定条码顺时针旋转角度。0-旋转0°,90-顺时针旋转90°,180-顺时针旋转180°,270-顺时针旋转270°。
g:字符串类型,条码内容。
*/
QString qrCodeCMD =
QString("QRCODE %1,%2,H,6,A,270,\"%3\"")
.arg(QString::number(200), QString::number(200), text);
// 设置打印机型号
openport("TSC TE244");
// 设置标签纸大小
sendcommand("SIZE 65 mm, 120 mm");
// 设置打印方向
sendcommand("DIRECTION 1");
// 清空打印机缓存
sendcommand("CLS");
// 打印条形码
sendcommand(qrCodeCMD.toLocal8Bit().data());
sendcommand("PRINT 1");
closeport();
}
void MainWindow::on_btn_font_clicked() {
if (!tscdll.load()) {
qDebug() << "加载DLL失败!";
}
QString text = ui->lE_font->text();
// 设置打印机型号
openport("TSC TE244");
// 设置标签纸大小
sendcommand("SIZE 65 mm, 120 mm");
// 设置打印方向
sendcommand("DIRECTION 1");
// 清空打印机缓存
sendcommand("CLS");
// 打印条形码
/*
windowsfont(a,b,c,d,e,f,g,h)
说明:使用Windows TTF字体打印文字。
参数:
a:整数类型,文字X方向起始点,以点表示。
b:整数类型,文字Y方向起始点,以点表示。
c:整数类型,字体高度,以点表示。
d:整数类型,旋转角度,逆时针方向旋转。0-旋转0°,90-旋转90°,180-旋转180°,270-旋转270°。
e:整数类型,字体外形。0:标签;1:斜体;2:粗体;3:粗斜体。
f:整数类型,下划线,0:无下划线;1:加下划线。
g:字符串类型,字体名称。如:Arial,Times new Roman。
h:字符串类型,打印文字内容。
*/
tscwindowsfont(16, 64, 20, 0, 2, 0, (unsigned char *)"Arial",
(unsigned char *)text.toLocal8Bit().data());
sendcommand("PRINT 1");
closeport();
}