|
@@ -1,262 +0,0 @@
|
|
|
-#include "danjumuban.h"
|
|
|
|
|
-#include "QtPrintSupport"
|
|
|
|
|
-#include "QDateTime"
|
|
|
|
|
-#include "globalinfo.h"
|
|
|
|
|
-#include <QDir>
|
|
|
|
|
-#include "configinfo.h"
|
|
|
|
|
-#include <pqQtlib/utils/pqfileutils.h>
|
|
|
|
|
-#include <pqQtlib/log/pqlog.h>
|
|
|
|
|
-
|
|
|
|
|
-DanJuMuBan::DanJuMuBan()
|
|
|
|
|
-{
|
|
|
|
|
- path = PQ::PQLogManger::this_()->getSaveFilePath();
|
|
|
|
|
- QDir dir(path);
|
|
|
|
|
- if(!dir.exists("xiangdan"))
|
|
|
|
|
- dir.mkdir("xiangdan");
|
|
|
|
|
- if(!dir.exists("rukudan"))
|
|
|
|
|
- dir.mkdir("rukudan");
|
|
|
|
|
- log = PQ::PQLogManger::this_()->getLog("printer");
|
|
|
|
|
- save = true;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-QImage DanJuMuBan::printBoxInfo(QString bar,QSharedPointer<BoxInfo> info)
|
|
|
|
|
-{
|
|
|
|
|
- // TODO: 测试打印出来的单子
|
|
|
|
|
-// if(datalist.isEmpty()){
|
|
|
|
|
-// return;
|
|
|
|
|
-// }
|
|
|
|
|
-// QLogInfo(log) << "prnter " << bar<< " " << info->caseNumber();
|
|
|
|
|
- QSharedPointer<PackInfo> pinfo = info->parentPack();
|
|
|
|
|
- if(pinfo.isNull()) return QImage();
|
|
|
|
|
- QSize size(MAXWIDTH*5,MAXHEIGHT*5);
|
|
|
|
|
- QImage image(size,QImage::Format_ARGB32);
|
|
|
|
|
- image.fill(qRgba(255, 255, 255, 255));
|
|
|
|
|
- QPainter painter(&image);
|
|
|
|
|
- painter.drawRect(5*5,5*5,90*5,15*5);
|
|
|
|
|
- painter.drawRect(5*5,20*5,90*5,35*5);
|
|
|
|
|
- painter.drawLine(20*5,20*5,20*5,55*5);
|
|
|
|
|
- painter.drawLine(50*5,20*5,50*5,55*5);
|
|
|
|
|
- painter.drawLine(66*5,20*5,66*5,55*5);
|
|
|
|
|
- painter.drawLine(5*5,27*5,95*5,27*5);
|
|
|
|
|
- painter.drawLine(5*5,34*5,95*5,34*5);
|
|
|
|
|
- painter.drawLine(5*5,41*5,95*5,41*5);
|
|
|
|
|
- painter.drawLine(5*5,48*5,95*5,48*5);
|
|
|
|
|
- painter.drawRect(5*5,55*5,90*5,15*5);
|
|
|
|
|
- painter.drawRect(5*5,70*5,90*5,7*5);
|
|
|
|
|
-
|
|
|
|
|
- QRect target(0*5, 57*5, 100*5, 65*5);
|
|
|
|
|
-// QRect source(-10*5, 0, 65*5, 40*5);
|
|
|
|
|
- barCode.draw(painter,target,bar);
|
|
|
|
|
-// painter.drawImage(target,barCode.draw(barCode.CodeBinary(bar),bar),source);
|
|
|
|
|
-
|
|
|
|
|
- painter.setRenderHint(QPainter::Antialiasing,true);
|
|
|
|
|
- painter.setRenderHint(QPainter::TextAntialiasing,true);
|
|
|
|
|
- painter.setRenderHint(QPainter::HighQualityAntialiasing,true);
|
|
|
|
|
- QFont font;
|
|
|
|
|
- font.setFamily("宋体");
|
|
|
|
|
- font.setPixelSize(40);
|
|
|
|
|
- font.setWeight(QFont::ExtraLight);
|
|
|
|
|
- painter.setFont(font);
|
|
|
|
|
- painter.drawText(6*5,15*5,pinfo->info()->customer);
|
|
|
|
|
- qDebug()<< "公司名称:" <<pinfo->info()->customer;
|
|
|
|
|
-
|
|
|
|
|
- font.setPixelSize(20);
|
|
|
|
|
- font.setBold(true);
|
|
|
|
|
- painter.setFont(font);
|
|
|
|
|
- painter.drawText(8*5,25*5,QStringLiteral("品名"));
|
|
|
|
|
- painter.drawText(53*5,25*5,QStringLiteral("毛重"));
|
|
|
|
|
- painter.drawText(8*5,32*5,QStringLiteral("批号"));
|
|
|
|
|
- painter.drawText(53*5,32*5,QStringLiteral("净重"));
|
|
|
|
|
- painter.drawText(8*5,39*5,QStringLiteral("规格"));
|
|
|
|
|
- painter.drawText(53*5,39*5,QStringLiteral("筒数"));
|
|
|
|
|
- painter.drawText(8*5,46*5,QStringLiteral("等级"));
|
|
|
|
|
- painter.drawText(53*5,46*5,QStringLiteral("捻向"));
|
|
|
|
|
- painter.drawText(8*5,53*5,QStringLiteral("箱号"));
|
|
|
|
|
- painter.drawText(50*5,53*5,QStringLiteral("纸管颜色"));
|
|
|
|
|
-
|
|
|
|
|
- painter.drawText(21*5,25*5,pinfo->info()->product_type_code);
|
|
|
|
|
- painter.drawText(21*5,32*5,pinfo->info()->batch_no);
|
|
|
|
|
- painter.drawText(21*5,39*5,pinfo->info()->specs);
|
|
|
|
|
- painter.drawText(67*5,25*5,QString("%1 kg").arg(getDecimalbit( info->gross_weight / 1000.00)));//datalist.at(0));
|
|
|
|
|
-
|
|
|
|
|
- painter.drawText(67*5,32*5,QString("%1 kg").arg(getDecimalbit(info->net_weight / 1000.00)));//datalist.at(1));
|
|
|
|
|
-
|
|
|
|
|
- painter.drawText(67*5,39*5,QString::number(info->tube_number));//datalist.at(2));
|
|
|
|
|
- painter.drawText(21*5,46*5,info->Level);//datalist.at(3));
|
|
|
|
|
- painter.drawText(67*5,46*5,info->twist_type);//datalist.at(4));
|
|
|
|
|
- painter.drawText(67*5,53*5,info->bucket_color);//datalist.at(6));
|
|
|
|
|
-
|
|
|
|
|
- font.setPixelSize(17);
|
|
|
|
|
- painter.setFont(font);
|
|
|
|
|
- painter.drawText(21*5,53*5,info->caseNumber());//datalist.at(5));
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- painter.drawText(4*5,75*5," 电话:"+ info->parentPack()->telephone);
|
|
|
|
|
-
|
|
|
|
|
- print(image);
|
|
|
|
|
-
|
|
|
|
|
- if(save)
|
|
|
|
|
- image.save(path+"/xiangdan/code"+bar+".bmp");
|
|
|
|
|
-
|
|
|
|
|
- return image;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-void DanJuMuBan::printPackModel(QPainter & painter)
|
|
|
|
|
-{
|
|
|
|
|
- painter.drawRect(4*5,4*5,92*5,68*5);
|
|
|
|
|
-
|
|
|
|
|
-// painter.drawLine(50*5,0,50*5,80*5);
|
|
|
|
|
-// painter.drawLine(4*5,16*5,96*5,16*5);
|
|
|
|
|
-// painter.drawLine(4*5,22*5,96*5,22*5);
|
|
|
|
|
-// painter.drawLine(4*5,28*5,96*5,28*5);
|
|
|
|
|
-// painter.drawLine(4*5,34*5,96*5,34*5);
|
|
|
|
|
-// painter.drawLine(4*5,40*5,96*5,40*5);
|
|
|
|
|
-// painter.drawLine(4*5,46*5,96*5,46*5);
|
|
|
|
|
-// painter.drawLine(4*5,52*5,96*5,52*5);
|
|
|
|
|
-// painter.drawLine(4*5,58*5,96*5,58*5);
|
|
|
|
|
-// painter.drawLine(4*5,65*5,96*5,65*5);
|
|
|
|
|
-
|
|
|
|
|
- QFont font;
|
|
|
|
|
- font.setFamily("宋体");
|
|
|
|
|
- font.setPixelSize(30);
|
|
|
|
|
- font.setWeight(QFont::ExtraLight);
|
|
|
|
|
- painter.setFont(font);
|
|
|
|
|
- painter.drawText(38*5,10*5,QStringLiteral("入 库 单"));
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- font.setPixelSize(20);
|
|
|
|
|
- painter.setFont(font);
|
|
|
|
|
- painter.drawText(8*5,15*5,QStringLiteral("规格:"));
|
|
|
|
|
- painter.drawText(59*5,15*5,QStringLiteral("类型:"));
|
|
|
|
|
- painter.drawText(8*5,21*5,QStringLiteral("批号:"));
|
|
|
|
|
- painter.drawText(59*5,21*5,QStringLiteral("等级:"));
|
|
|
|
|
-
|
|
|
|
|
- font.setPixelSize(15);
|
|
|
|
|
- painter.setFont(font);
|
|
|
|
|
-
|
|
|
|
|
- painter.drawText(8*5,64*5,QStringLiteral("总数"));
|
|
|
|
|
- painter.drawText(38*5,64*5,QStringLiteral("总重量"));
|
|
|
|
|
- painter.drawText(68*5,64*5,QStringLiteral("总筒数"));
|
|
|
|
|
-
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-QImage DanJuMuBan::printPackInfo(QString bar, QSharedPointer<PackInfo> info)
|
|
|
|
|
-{
|
|
|
|
|
- QSize size(MAXWIDTH*5,MAXHEIGHT*5);
|
|
|
|
|
- QImage image(size,QImage::Format_ARGB32);
|
|
|
|
|
- image.fill(qRgba(255, 255, 255, 255));
|
|
|
|
|
- QPainter painter(&image);
|
|
|
|
|
- printPackModel(painter);
|
|
|
|
|
-
|
|
|
|
|
- QFont font;
|
|
|
|
|
- font.setPixelSize(15);
|
|
|
|
|
- painter.setFont(font);
|
|
|
|
|
- int boxSize = info->boxes().size();
|
|
|
|
|
- for(int i = 0; i < boxSize; ++i){
|
|
|
|
|
- int line = i / 5;
|
|
|
|
|
- int cloun = i % 5;
|
|
|
|
|
- painter.drawText((9 + line * 19)*5,(27 + cloun * 6)*5,QString("%1.").arg(i + 1));
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- QRect target(0*5, 67*5, 100*5, 75*5);
|
|
|
|
|
- barCode.draw(painter,target,bar);
|
|
|
|
|
- font.setPixelSize(20);
|
|
|
|
|
- font.setFamily("黑体");
|
|
|
|
|
-
|
|
|
|
|
- painter.setFont(font);
|
|
|
|
|
- painter.drawText(19*5,15*5,info->info()->specs);//QStringLiteral("规格"));
|
|
|
|
|
- painter.drawText(70*5,15*5,info->info()->category);//QStringLiteral("类型"));
|
|
|
|
|
- painter.drawText(19*5,21*5,info->info()->batch_no);//QStringLiteral("批号"));
|
|
|
|
|
- painter.drawText(70*5,21*5,info->level);//info.at(0));
|
|
|
|
|
- for(int i = 0; i < boxSize; ++i)
|
|
|
|
|
- {
|
|
|
|
|
- QString code = getDecimalbit(info->boxes().at(i)->net_weight / 1000);
|
|
|
|
|
- int line = i / 5;
|
|
|
|
|
- int cloun = i % 5;
|
|
|
|
|
- painter.drawText((13 + line * 19)*5,(27.5 + cloun * 6 )*5 ,code);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- painter.drawText(15*5,64*5,QString::number(info->boxes().size()));
|
|
|
|
|
- painter.drawText(48*5,64*5,QString("%1 kg").arg(getDecimalbit(info->net_weight() / 1000.00)));
|
|
|
|
|
- painter.drawText(78*5,64*5,QString::number(info->tube_number()));
|
|
|
|
|
-
|
|
|
|
|
- print(image);
|
|
|
|
|
-if(save)
|
|
|
|
|
- image.save(path+"/rukudan/code"+bar+".bmp");
|
|
|
|
|
-
|
|
|
|
|
- return image;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-QImage DanJuMuBan::mapPrintPackInfo(QMap<QString, QString> product, QStringList details)
|
|
|
|
|
-{
|
|
|
|
|
- QSize size(MAXWIDTH*5,MAXHEIGHT*5);
|
|
|
|
|
- QImage image(size,QImage::Format_ARGB32);
|
|
|
|
|
- image.fill(qRgba(255, 255, 255, 255));
|
|
|
|
|
- QPainter painter(&image);
|
|
|
|
|
- printPackModel(painter);
|
|
|
|
|
-
|
|
|
|
|
- QFont font;
|
|
|
|
|
- font.setPixelSize(15);
|
|
|
|
|
- painter.setFont(font);
|
|
|
|
|
- int boxSize = details.size();
|
|
|
|
|
- for(int i = 0; i < boxSize; ++i){
|
|
|
|
|
- int line = i / 5;
|
|
|
|
|
- int cloun = i % 5;
|
|
|
|
|
- painter.drawText((9 + line * 19)*5,(27 + cloun * 6)*5,QString("%1.").arg(i + 1));
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- QRect target(0*5, 67*5, 100*5, 75*5);
|
|
|
|
|
- QString bar = product.value("code_single");
|
|
|
|
|
- barCode.draw(painter,target,bar);
|
|
|
|
|
- font.setPixelSize(20);
|
|
|
|
|
- font.setFamily("黑体");
|
|
|
|
|
-
|
|
|
|
|
- painter.setFont(font);
|
|
|
|
|
- painter.drawText(19*5,15*5,product.value("specs"));//QStringLiteral("规格"));
|
|
|
|
|
- painter.drawText(70*5,15*5,product.value("category"));//QStringLiteral("类型"));
|
|
|
|
|
- painter.drawText(19*5,21*5,product.value("batch_no"));//QStringLiteral("批号"));
|
|
|
|
|
- painter.drawText(70*5,21*5,product.value("level_id"));//info.at(0));
|
|
|
|
|
- for(int i = 0; i < boxSize; ++i)
|
|
|
|
|
- {
|
|
|
|
|
- int line = i / 5;
|
|
|
|
|
- int cloun = i % 5;
|
|
|
|
|
- painter.drawText((13 + line * 19)*5,(27.5 + cloun * 6 )*5 ,details.at(i));
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- painter.drawText(15*5,64*5,QString::number(details.size()));
|
|
|
|
|
- painter.drawText(48*5,64*5,QString("%1 kg").arg(getDecimalbit(product.value("net_widget").toDouble() / 1000.00)));
|
|
|
|
|
- painter.drawText(78*5,64*5,product.value("tube_number"));
|
|
|
|
|
-
|
|
|
|
|
- print(image);
|
|
|
|
|
-if(save)
|
|
|
|
|
- image.save(path+"/rukudan/code"+bar+".bmp");
|
|
|
|
|
-
|
|
|
|
|
- return image;
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-void DanJuMuBan::print(QImage image)
|
|
|
|
|
-{
|
|
|
|
|
- auto name = GlobalInfo::this_()->config()->printerName;
|
|
|
|
|
- pqInfo(log) << "printer " << name;
|
|
|
|
|
- QPrinter printer(QPrinterInfo::printerInfo(GlobalInfo::this_()->config()->printerName));
|
|
|
|
|
- printer.setPageSize(QPrinter::Custom);
|
|
|
|
|
- printer.setPageSizeMM(QSizeF(100,70));
|
|
|
|
|
-
|
|
|
|
|
-// printer.setPrinterName();
|
|
|
|
|
- QPainter painter(&printer); // 创建一个QPainter对象,并指定绘图设备为一个QPainter对象
|
|
|
|
|
- QRect rect =painter.viewport(); // 获得QPainter对象的视图矩形区域
|
|
|
|
|
- QSize size(image.width(),image.height()); // 获得图像的大小
|
|
|
|
|
- /* 按照图形的比例大小重新设置视图矩形区域 */
|
|
|
|
|
- size.scale(rect.size(),Qt::KeepAspectRatio);
|
|
|
|
|
- painter.setViewport(rect.x(),rect.y(),size.width()+50,size.height());
|
|
|
|
|
-// painter.setViewport(rect.x(),rect.y(),size.width(),size.height());
|
|
|
|
|
- painter.setWindow(image.rect()); // 设置QPainter窗口大小为图像的大小
|
|
|
|
|
- painter.drawImage(0,0,image); // 打印图像
|
|
|
|
|
- painter.end();
|
|
|
|
|
- auto ed = printer.newPage();
|
|
|
|
|
- pqInfo(log) << "printer newPage:" << ed;
|
|
|
|
|
-// printer
|
|
|
|
|
-// }
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|