0
0
mirror of https://github.com/fralx/LimeReport.git synced 2024-12-26 01:24:39 +03:00
LimeReport/console/main.cpp

66 lines
1.6 KiB
C++
Raw Normal View History

#include <QApplication>
#include <QUuid>
#include <LimeReport>
#include <iostream>
#include <QDebug>
#include <QDir>
#include <QFile>
#ifdef _WIN32
#include <io.h>
#include <fcntl.h>
#endif
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QStringList vars;
LimeReport::ReportEngine report;
if (a.arguments().count() < 2 ){
std::cerr<<"Error! Report file is not specified !!";
return 1;
}
if (a.arguments().count()>2){
vars = a.arguments().at(2).split(";");
qDebug()<<vars;
foreach(QString var, vars){
QStringList varItem = var.split("=");
report.dataManager()->setReportVariable(varItem.at(0),varItem.at(1));
}
}
QString reportFile = a.arguments().at(1);
if (!report.loadFromFile(reportFile)){
qDebug()<<QDir::currentPath();
QFile::exists(reportFile);
std::cerr<<"Error! Report file \""+reportFile.toStdString()+"\" not found";
return 1;
}
QUuid uid = QUuid::createUuid();
QString uidStr = uid.toString()+".pdf";
report.printToPDF(uidStr);
QFile in(uidStr);
QFile out;
out.open(stdout, QFile::WriteOnly);
in.open(QIODevice::ReadOnly);
#ifdef _WIN32
_setmode(fileno(stdout),O_BINARY);
//qDebug()<<result;
#endif
QByteArray buffer = in.readAll();
fwrite(buffer,1,buffer.size(),stdout);
// out.write(in.readAll());
in.close();
in.remove();
// std::cout << uidStr.toStdString();
// std::cout << in.readAll().data();
// in.close();
// in.remove();
return 0;
//return a.exec();
}