1.需求
需要实现订单结算后的小票打印,要求能打印商品数据和结算数据及将小票号打印成条码,退货或查询时能通过扫描枪扫描条码快速查询到订单信息
2.解决
1.通过将数据转化为html后调用qt进行打印,打印机无法打印img标签中的条码
2.通过将数据转化为html,将条码直接绘制的方法实现了需求
3.代码
Barcode.h
#ifndef BARCODE_H
#define BARCODE_H
#include <QString>
#include <QPainter>
#define BUILDNUM 7
enum Symbology
{
RATIONALCODABAR,
TRADITIONALCODABAR,
I2OF5,
CODE39,
COD128,
UPCEAN,
CODE93
};
#define COLORWHITE 0x00FFFFFF
#define COLORBLACK 0x00000000
class CBarcode
{
public :
CBarcode ();
void LoadData(QString csMessage, const QString &strImagePath, double dNarrowBar, double dFinalHeight, int nStartingXPixel, int nStartingYPixel, double dRatio = 1.0 );
virtual void DrawBitmap(QPainter *painter = nullptr) = 0 ;
virtual ~CBarcode();
long GetBarcodePixelWidth();
long GetBarcodePixelHeight();
protected :
QString m_csMessage;
QString m_strImagePath;
long m_nFinalBarcodePixelWidth;
long m_nNarrowBarPixelWidth;
long m_nPixelHeight;
long m_nStartingXPixel;
long m_nStartingYPixel;
long m_nSymbology;
long m_nWideBarPixelWidth;
virtual void DrawPattern(QString csPattern, QPainter *painter) = 0 ;
};
#endif // !defined(AFX_BARCODE_H__C5D7FCDA_5C8F_4244_AF95_33D6FA93F8EB__INCLUDED_)
Barcode.cpp
#include "Barcode.h"
CBarcode::CBarcode()
{
}
CBarcode::~CBarcode()
{
}