• 大小: 56KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-05-28
  • 语言: 其他
  • 标签: Qt  QPrinter  二维码  

资源简介

基于的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 << info.printerName();
    }

    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个文件信息

评论

共有 条评论