資源簡介
基于的Qt 實現的二維碼 打印軟件,可實現 以毫米為單位的 位置調整

代碼片段和文件信息
#include?“barcodeprinter.h“
#include?
#include?
BarcodePrinter::BarcodePrinter(Qobject?*parent)?:
????Qobject(parent)
????printerConfigured(FALSE)
{
????//
????mode?=??MODE_8;
????level?=?LEVEL_L;//LEVEL_Q;//糾錯
????foreground?=?QColor(“black“);
????background?=?QColor(“white“);
????casesen=true;
????mPrinter?=?new?QPrinter(QPrinter::PrinterResolution);
????//mode??QR碼支持編碼的內容包括純數字、數字和字符混合編碼、8位字節碼和包含漢字在內的多字節字符。其中:
????//?數字:每三個為一組壓縮成10bit。
????//字母數字混合:每兩個為一組,壓縮成11bit。
????//8bit字節數據:無壓縮直接保存。
????//多字節字符:每一個字符被壓縮成13bit。
}
QStringList?BarcodePrinter::getAvailablePrinters()
{
????QStringList?availablePrinters;
????QPrinterInfo?pInfo;
????foreach?(QPrinterInfo?info?pInfo.availablePrinters())?{
????????availablePrinters?<????}
????return?availablePrinters;
}
bool?BarcodePrinter::configurePrinter(QString?printerName)
{
????bool?printerAvailable?=?getAvailablePrinters().contains(printerName);
????if(printerAvailable)
????{
????????mPrinter->setPrinterName(printerName);
????????configurePage();
????????qDebug()?<“Printer?initialized.?State:“?+?mPrinter->printerState();
????}
????else?//If?the?printer?is?unavailable?generate?pdf?instead
????{
????????//mPrinter.setOutputFileName(“barcode.pdf“);
???????//?mPrinter.setOutputFormat(QPrinter::PdfFormat);
????????configurePage();
????????qDebug()?<“Printer?initialized?to?generate?pdf“;
????}
????printerConfigured?=?TRUE;
????return?printerAvailable;
}
void?BarcodePrinter::Delay_MSec_Suspend(unsigned?int?msec)
{
????QTime?_Timer?=?QTime::currentTime();
????QTime?_NowTimer;
????do{
??????????????_NowTimer=QTime::currentTime();
????}while?(_Timer.msecsTo(_NowTimer)<=msec);
}
void?BarcodePrinter::printBarcode(QString?codeText)
{
????if(!printerConfigured)
????{
????????qDebug()?<“Printer?not?configured?abort.“;
????????return;
????}
????qDebug()?<“Printing?:?\““?+?codeText?+?“\“?...“;
????double?MmToDot?=12?;//分辨率/24.5MM??每毫米多少像素點?。?300/24.5??8;?//Printer?DPI?=?203?=>?8?dots?per?mm
????QPainter?painter(mPrinter);
????//文字?x:3mm???y:27mm???寬:28mm??高:4mm
????double?codeTextX=0*MmToDot;
????double?codeTextY=24*MmToDot;
????double?codeTextW=28*MmToDot;
????double?codeTextH=4*MmToDot;
????QRect?codeTextRect?=?QRect(codeTextXcodeTextYcodeTextWcodeTextH);
????painter.setFont(QFont(“Microsoft?YaHei“?8?QFont::Normal));
????painter.drawText(codeTextRect?Qt::AlignCenter?codeText);
????//二維碼圖片?x:42mm??y:17mm?寬::14MM??高:14mm
????double?qrcodeX?=35*MmToDot;
????double?qrcodeY?=17*MmToDot;
????double?qrcodeW?=10*MmToDot;
????double?qrcodeH?=10*MmToDot;
????//ver?1??版本越高,意味著存儲的內容越多,糾錯能力也越強
????QRcode?*qrcode?=?QRcode_encodeString(codeText.toStdString().c_str()?1?(QRecLevel)level?(QRencodeMode)mode?casesen???1?:?0);
????int?margin=0;
????if(0?!=?qrcode)
????{
????????unsigned?char?*point?=?qrcode->data;
????????painter.setPen(Qt::NoPen);
????????painter.setBrush(this->background);
????????painter.drawRect(qrcodeXqrcodeY?qrcodeW?qrcodeH);
????????doubl
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????4953??2018-02-09?11:04??Qt-barcode-master\barcode.pdf
?????文件???????5809??2018-02-09?13:17??Qt-barcode-master\barcodeprinter.cpp
?????文件???????1791??2018-02-09?12:25??Qt-barcode-master\barcodeprinter.h
?????文件???????7932??2017-09-10?23:43??Qt-barcode-master\code128.ttf
?????文件????????461??2018-02-09?13:04??Qt-barcode-master\main.cpp
?????文件???????4284??2014-03-08?17:31??Qt-barcode-master\qrencode\bitstream.c
?????文件???????1432??2014-03-08?17:31??Qt-barcode-master\qrencode\bitstream.h
?????文件???????2708??2014-03-08?17:31??Qt-barcode-master\qrencode\config.h
?????文件???????6929??2014-03-08?17:31??Qt-barcode-master\qrencode\mask.c
?????文件???????1560??2014-03-08?17:31??Qt-barcode-master\qrencode\mask.h
?????文件???????4078??2014-03-08?17:31??Qt-barcode-master\qrencode\mmask.c
?????文件???????1404??2014-03-08?17:31??Qt-barcode-master\qrencode\mmask.h
?????文件???????7063??2014-03-08?17:31??Qt-barcode-master\qrencode\mqrspec.c
?????文件???????4774??2014-03-08?17:31??Qt-barcode-master\qrencode\mqrspec.h
?????文件??????20071??2014-03-08?17:31??Qt-barcode-master\qrencode\qrencode.c
?????文件??????20916??2014-03-08?17:31??Qt-barcode-master\qrencode\qrencode.h
?????文件???????2778??2014-03-08?17:31??Qt-barcode-master\qrencode\qrencode_inner.h
?????文件??????38941??2014-03-08?17:31??Qt-barcode-master\qrencode\qrinput.c
?????文件???????3651??2014-03-08?17:31??Qt-barcode-master\qrencode\qrinput.h
?????文件??????15689??2014-03-08?17:31??Qt-barcode-master\qrencode\qrspec.c
?????文件???????5832??2014-03-08?17:31??Qt-barcode-master\qrencode\qrspec.h
?????文件???????9182??2018-02-09?14:28??Qt-barcode-master\qrencode\rscode.c
?????文件???????1468??2014-03-08?17:31??Qt-barcode-master\qrencode\rscode.h
?????文件???????7683??2014-03-08?17:31??Qt-barcode-master\qrencode\split.c
?????文件???????1913??2014-03-08?17:31??Qt-barcode-master\qrencode\split.h
?????文件????????892??2018-02-08?11:23??Qt-barcode-master\Qt-barcode.pro
?????文件??????23898??2018-02-10?16:38??Qt-barcode-master\Qt-barcode.pro.user
?????目錄??????????0??2018-02-10?16:17??Qt-barcode-master\qrencode
?????目錄??????????0??2018-02-10?16:38??Qt-barcode-master
-----------?---------??----------?-----??----
............此處省略2個文件信息
評論
共有 條評論