#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(); }