Example #1
0
void CDiaryEdit::slotPrintPreview()
{
    CDiaryEditLock lock(this);
    collectData();

    QPrinter printer;
    QPrintDialog dialog(&printer, this);
    dialog.setWindowTitle(tr("Print Diary"));
    if (dialog.exec() != QDialog::Accepted)
        return;

    QTextDocument doc;
    QSizeF pageSize = printer.pageRect(QPrinter::DevicePixel).size();
    doc.setPageSize(pageSize);
    draw(doc);

    if(checkAddMap->isChecked())
    {
        QImage img;
        theMainWindow->getCanvas()->print(img, pageSize.toSize() - QSize(10,10));
        doc.rootFrame()->lastCursorPosition().insertImage(img);
    }
    doc.print(&printer);

    textEdit->clear();
    textEdit->document()->setTextWidth(textEdit->size().width() - 20);
    draw(*textEdit->document());
}
Example #2
0
void EditDialog::openPrintDialog()
{
    QPrinter printer;
    QPrintPreviewDialog *dialog = new QPrintPreviewDialog(&printer);

    QTextDocument *document = new QTextDocument();
    switch (dataSource) {
    case TextBuffer:
        document->setPlainText(ui->editorText->toPlainText());
        break;
    case SciBuffer:
        // This case isn't really expected because the Scintilla widget has it's own printing slot
        document->setPlainText(sciEdit->text());
        break;
    case HexBuffer:
        document->setPlainText(hexEdit->toReadableString());
        document->setDefaultFont(hexEdit->font());
        break;
    }

    connect(dialog, &QPrintPreviewDialog::paintRequested, [&](QPrinter *previewPrinter) {
        document->print(previewPrinter);
    });

    dialog->exec();

    delete dialog;
    delete document;
}
Example #3
0
/**
 * Methode permettant d'imprimer un document
 */
void ValidDocument::print(){

    QWebView webView;
    QPrinter printer ;

    printer.setPageSize(QPrinter::A4);
    printer.setFullPage(true);
    QString type=(docType==Document::Facture)?QObject::trUtf8("Facture"):QObject::trUtf8("Devis");
    printer.setDocName(type+"_"+QString::number(id) );
    printer.setCreator(QObject::trUtf8("QFacturation"));
    printer.setOutputFormat(QPrinter::NativeFormat);

    webView.setHtml(view);
    webView.show();
    QPrintDialog printDialog(&printer);
    if(printDialog.exec() == QDialog::Accepted) {
        qDebug("Ne fonctionne pas sous windows")<<" Hack ....";

        #if defined(Q_WS_WIN)
            QTextDocument text;
            text.setHtml(view);
            text.print(&printer);
        #endif
        #if defined(Q_WS_QWS)
            webView.print(&printer);
        #endif
        #if defined(Q_WS_X11)
            webView.print(&printer);
        #endif
    }

}
Example #4
0
bool ignsystem::print(const QVariant &config){
    QVariantMap conf = jsonParse->jsonParser(config).toVariantMap();
    QPrinter print;
    QTextDocument *doc = new QTextDocument();

    QString type = conf["type"].toString();
    QString txt = conf["content"].toString();
    QString out = conf["out"].toString();

    if(type == "html")
    {
        doc->setHtml(txt);
    }
    else
    {
        doc->setPlainText(txt);
    }

    if(out == "pdf"){
        print.setOutputFormat(QPrinter::PdfFormat);
    }

    QPrintDialog *dialog = new QPrintDialog(&print);
    if (dialog->exec() != QDialog::Accepted)
    {
        return false;
    }
    else
    {
        doc->print(&print);
        delete doc;
        return true;
    }
}
Example #5
0
void ControlView::printMapScreenShot( QPointer<QPrintDialog> printDialog)
{
#ifndef QT_NO_PRINTER
    PrintOptionsWidget* printOptions = new PrintOptionsWidget( this );
    bool const mapCoversViewport = m_marbleWidget->viewport()->mapCoversViewport();
    printOptions->setBackgroundControlsEnabled( !mapCoversViewport );
    bool hasLegend = m_marbleWidget->model()->legend() != 0;
    printOptions->setLegendControlsEnabled( hasLegend );
    bool hasRoute = marbleWidget()->model()->routingManager()->routingModel()->rowCount() > 0;
    printOptions->setPrintRouteSummary( hasRoute );
    printOptions->setPrintDrivingInstructions( hasRoute );
    printOptions->setPrintDrivingInstructionsAdvice( hasRoute );
    printOptions->setRouteControlsEnabled( hasRoute );
    printDialog->setOptionTabs( QList<QWidget*>() << printOptions );

    if ( printDialog->exec() == QDialog::Accepted ) {
        QTextDocument document;
        QString text = "<html><head><title>Marble Printout</title></head><body>";
        QPalette const originalPalette = m_marbleWidget->palette();
        bool const wasBackgroundVisible = m_marbleWidget->showBackground();
        bool const hideBackground = !mapCoversViewport && !printOptions->printBackground();
        if ( hideBackground ) {
            // Temporarily remove the black background and layers painting on it
            m_marbleWidget->setShowBackground( false );
            m_marbleWidget->setPalette( QPalette ( Qt::white ) );
            m_marbleWidget->update();
        }

        if ( printOptions->printMap() ) {
            printMap( document, text, printDialog->printer() );
        }

        if ( printOptions->printLegend() ) {
            printLegend( document, text );
        }

        if ( printOptions->printRouteSummary() ) {
            printRouteSummary( document, text );
        }

        if ( printOptions->printDrivingInstructions() ) {
            printDrivingInstructions( document, text );
        }

        if ( printOptions->printDrivingInstructionsAdvice() ) {
            printDrivingInstructionsAdvice( document, text );
        }

        text += "</body></html>";
        document.setHtml( text );
        document.print( printDialog->printer() );

        if ( hideBackground ) {
            m_marbleWidget->setShowBackground( wasBackgroundVisible );
            m_marbleWidget->setPalette( originalPalette );
            m_marbleWidget->update();
        }
    }
#endif
}
void MainWindow::doPrintParameterStatistic()
{
    if ( gv_PS.count() > 0 )
    {
        QTextDocument   textDocu;

        QPrinter        printer;
        QPrintDialog    printDialog( &printer, this );

        printer.setOrientation( QPrinter::Landscape );

        if ( printDialog.exec() == QDialog::Accepted )
        {
            QFileInfo   fi( gsl_FilenameList.at( 0 ) );
            QFont       textFont = QFont( gf_HeaderTextFont.family(), 10, 0, false );

            printer.setOutputFileName( tr( "" ) );
            textDocu.setHtml( createParameterStatisticOutputText( fi.fileName(), gv_PS ) );
            textDocu.setDefaultFont( textFont );
            textDocu.print( &printer );
        }

        update();
    }

    setStatusBar( tr( "Done" ), 2 );
}
Example #7
0
bool ignsystem::print(const QVariant &config) {
  QVariantMap configuration = jsonParse->jsonParser(config).toVariantMap();
  QPrinter printer;
  QTextDocument *document = new QTextDocument();
  QPrintDialog *printDialog = new QPrintDialog(&printer);

  QString type = configuration[QStringLiteral("type")].toString();
  QString content = configuration[QStringLiteral("content")].toString();
  QString output = configuration[QStringLiteral("out")].toString();

  if (type == QLatin1String("html")) {
    document->setHtml(content);
  } else {
    document->setPlainText(content);
  }

  if (output == QLatin1String("pdf")) {
    printer.setOutputFormat(QPrinter::PdfFormat);
  }

  if (printDialog->exec() == QDialog::Accepted) {
    document->print(&printer);
    delete document;
    return true;
  } else {
    return false;
  }
}
//Print clicked, format all lists
//for printing
void TaskList_Main::printAllClick(){
    QPrinter printer;

    //Create new print dialog (select printer)
    QPrintDialog *pDialog = new QPrintDialog(&printer, this);
    pDialog->setWindowTitle(tr("Print Document"));
    if(pDialog->exec() != QDialog::Accepted)
        return;
    else{
        QTextDocument document;
        QString html = "";

        for(int i = 0; i < listPane->mainList->count(); ++i){
            QListWidgetItem *currList = listPane->mainList->item(i);
            my_listwidget *currNote = notePane->listMap[currList];

            //Generate HTML driven output
            html += "<font size=\"7\"><b>" + currList->text() + "</b></font><br />";
            for(int i = 0; i < currNote->count(); i++){
                if(currNote->item(i)->flags() != 0)
                    html += "<font size=\"5\">" + currNote->item(i)->text() + "</font><br />";
                else
                    html += "--<font size=\"4\"><i>" + currNote->item(i)->text() + "</i></font><br />";
            }

            html += "<br />";
        }

        //Set document's HTML info
        document.setHtml(html);

        //Print the HTML text
        document.print(&printer);
    }
}
Example #9
0
void DeckListModel::printDeckList(QPrinter *printer)
{
    QTextDocument doc;

    QFont font("Serif");
    font.setStyleHint(QFont::Serif);
    doc.setDefaultFont(font);

    QTextCursor cursor(&doc);

    QTextBlockFormat headerBlockFormat;
    QTextCharFormat headerCharFormat;
    headerCharFormat.setFontPointSize(16);
    headerCharFormat.setFontWeight(QFont::Bold);

    cursor.insertBlock(headerBlockFormat, headerCharFormat);
    cursor.insertText(deckList->getName());

    headerCharFormat.setFontPointSize(12);
    cursor.insertBlock(headerBlockFormat, headerCharFormat);
    cursor.insertText(deckList->getComments());
    cursor.insertBlock(headerBlockFormat, headerCharFormat);

    for (int i = 0; i < root->size(); i++) {
        cursor.insertHtml("<br><img src=:/resources/hr.jpg>");
        //cursor.insertHtml("<hr>");
        cursor.insertBlock(headerBlockFormat, headerCharFormat);

        printDeckListNode(&cursor, dynamic_cast<InnerDecklistNode *>(root->at(i)));
    }

    doc.print(printer);
}
Example #10
0
void PringKvitok::on_toolButton_print_clicked()
{
#if !defined(QT_NO_PRINTER)

    QPrinter printer(QPrinter::HighResolution);
    QPrintDialog *dlg = new QPrintDialog(&printer, this);

   dlg->setWindowTitle(tr("Настройки принтера"));
   if (dlg->exec() == QDialog::Accepted){
       QString pg;
       QMapIterator<QString, QCheckBox*> i(childsCheckBox_map);
       ui->progressBar->setVisible(true);
       int count = 0;
       int c = 0;
       while (i.hasNext()) {
           i.next();
            QCheckBox *cb = i.value();
            if (cb->checkState() == Qt::Checked){
                count++;
             }
       }

       ui->progressBar->setMaximum(count);
       QString page1;
       QString page2;
       while (i.hasPrevious()) {
           i.previous();
           QCheckBox *cb = i.value();

            if (cb->checkState() == Qt::Checked){
                if (ui->checkBox_twokv->checkState() == Qt::Checked){
                if (page1 == "") page1 = prepareKvit(cb->text());
                else {
                   page2 = prepareKvit(cb->text());
                   pg += TwoKvitOnePage(page1, page2);
                   page1 = "";
                   page2 = "";
                }
             } else pg += prepareKvit(cb->text());
             ui->progressBar->setValue(c++);
           }

       }
       if (ui->checkBox_twokv->checkState() == Qt::Checked && page1 != "" && page2 == "") pg += page1;
        QTextDocument textDocument;

        textDocument.setHtml(pg);
         QPrinter printer(QPrinter::HighResolution);
         printer.setOrientation(QPrinter::Portrait);
         printer.setPaperName("A4");
         printer.setPageMargins(0.3, 0.3, 0.3, 0.3, QPrinter::Unit() );
         if (ui->checkBox_duplex->checkState() == Qt::Checked)printer.setDuplex(QPrinter::DuplexAuto);
         textDocument.print(&printer);
          ui->progressBar->setVisible(false);
   }
   delete dlg;
 #endif
}
Example #11
0
void PrintLayout::printTable() const
{
	QTextDocument doc;
	QSizeF pageSize;
	pageSize.setWidth(pageRect.width());
	pageSize.setHeight(pageRect.height());
	doc.setPageSize(pageSize);

	QString styleSheet(
		"<style type='text/css'>" \
		"table {" \
		"	border-width: 1px;" \
		"	border-style: solid;" \
		"	border-color: #999999;" \
		"}" \
		"th {" \
		"	background-color: #eeeeee;" \
		"	font-size: small;" \
		"	padding: 3px 5px 3px 5px;" \
		"}" \
		"td {" \
		"	font-size: small;" \
		"	padding: 3px 5px 3px 5px;" \
		"}" \
		"</style>"
	);
	// setDefaultStyleSheet() doesn't work here?
	QString htmlText = styleSheet + "<table cellspacing='0' width='100%'>";
	QString htmlTextPrev;
	int pageCountNew = 1, pageCount;
	bool insertHeading = true;

	int i;
	struct dive *dive;
	for_each_dive(i, dive) {
		if (!dive->selected && printOptions->print_selected)
			continue;
		if (insertHeading) {
			htmlText += insertTableHeadingRow();
			insertHeading = false;
		}
		htmlTextPrev = htmlText;
		htmlText += insertTableDataRow(dive);
		doc.setHtml(htmlText);
		pageCount = pageCountNew;
		pageCountNew = doc.pageCount();
		/* if the page count increases after adding this row we 'revert'
		 * and add a heading instead. */
		if (pageCountNew > pageCount) {
			htmlText = htmlTextPrev;
			insertHeading = true;
			i--;
		}
	}
	htmlText += "</table>";
	doc.setHtml(htmlText);
	doc.print(printer);
}
Example #12
0
void PringKvitok::on_toolButton_pdf_clicked()
{
#if !defined(QT_NO_PRINTER)

    QString pg;
    QMapIterator<QString, QCheckBox*> i(childsCheckBox_map);

    ui->progressBar->setVisible(true);
    int count = 0;
    int c = 0;
    while (i.hasNext()) {
        i.next();
         QCheckBox *cb = i.value();
         if (cb->checkState() == Qt::Checked){
             count++;
          }
    }

    ui->progressBar->setMaximum(count);
    QString page1;
    QString page2;
    while (i.hasPrevious()) {
        i.previous();
        QCheckBox *cb = i.value();

         if (cb->checkState() == Qt::Checked){
             if (ui->checkBox_twokv->checkState() == Qt::Checked){
             if (page1 == "") page1 = prepareKvit(cb->text());
             else {
                page2 = prepareKvit(cb->text());
                pg += TwoKvitOnePage(page1, page2);
                page1 = "";
                page2 = "";
             }
          } else pg += prepareKvit(cb->text());
          ui->progressBar->setValue(c++);
        }

    }
    if (ui->checkBox_twokv->checkState() == Qt::Checked && page1 != "" && page2 == "") pg += page1;
     QTextDocument textDocument;

     textDocument.setHtml(pg);
     QPrinter printer(QPrinter::HighResolution);

     printer.setOutputFormat(QPrinter::PdfFormat);
     printer.setOutputFileName( "print.pdf");

     printer.setOrientation(QPrinter::Portrait);
     printer.setPaperName("A4");


     printer.setPageMargins(1, 1, 1, 1,  QPrinter::Millimeter );
     textDocument.print(&printer);
     ui->progressBar->setValue(c++);
     ui->progressBar->setVisible(false);
 #endif
}
Example #13
0
void MainWindow::on_pushButton_4_clicked()
{
     QTextDocument doc;
     QString txt;
     txt = ::textAt(h3,65,"ASAP Film Order") %
                  ::textAt(h3,40,"From C&C Special Products Co. 952-881-0073") %
                  ::textAt(h3,67,"Mark &nbsp;Robin") %
                  ::textAt(h3,6,"Attn: Customer Service") % ::nbsp(63) % "Rip Settings:"%
                  ::textAt(h3,103,"1) Film Positives") %
                  ::textAt(h3,103,"2) DO NOT TRAP") %
                  ::textAt(h3,103,"3) Send Pre Separated") %
                  ::textAt(h3,6,"Date: " % ui->dateEdit->text()) %
                  ::textAt(h3,6,"File Name: " % ui->lineEdit_2->text());

qDebug() << "The memory used is: " << txt.capacity();

     doc.setHtml(txt);


     #if !defined(QT_NO_PRINTER) && !defined(QT_NO_PRINTDIALOG)
         QPrinter printer(QPrinter::HighResolution);
         QPrintDialog *dlg = new QPrintDialog(&printer, this);
         dlg->addEnabledOption(QAbstractPrintDialog::PrintSelection);
         dlg->setWindowTitle(tr("Print Document"));
         if (dlg->exec() == QDialog::Accepted)
            {
             QPrinter printer;
       //      printer.setOutputFileName("c:\\temp\\filenew.pdf");
       //      printer.setOutputFormat(QPrinter::PdfFormat);
             qDebug() <<  "Sending to printer";

             doc.print(&printer);
             printer.newPage();
             printer.setOutputFileName("c:\\temp\\faxASAP.pdf");
             printer.setOutputFormat(QPrinter::PdfFormat);
             qDebug() <<  "Creating PDF";
            doc.print(&printer);
             printer.newPage();

           }

         delete dlg;
     #endif

}
Example #14
0
/**
  * Статическая функция печати текстового документа. Может выполняться в
  * отдельном потоке.
  *
  * @param qdoc - указатель на текстовый документ, приготовленный к печати.
  * @param printer - указатель на объект принтера.
  */
void MonitorWindow::printThreadFunc(QTextDocument * qdoc, QPrinter * printer)
{
    QTextDocument * doc = qdoc->clone();

    //QTime time;
    //time.start();
    doc->print(printer);
    //qDebug() << time.elapsed();
}
Example #15
0
void Print::printHtml(const QString &html){
    QPrinter  printer;
    QPrintDialog printDialog(&printer);
    if(printDialog.exec()){
        QTextDocument textDocument;
        textDocument.setHtml(html);
        textDocument.print(&printer);
    }
}
Example #16
0
void Overhead::printDriver(QPrinter *p)
{
    qDebug("Call printDriver...");
    QString strStream;
    QTextStream out(&strStream);
    out.setCodec("UTF-8");

    const int rowCount = ui->tableOHHackGet->model()->rowCount();
    const int columnCount = ui->tableOHHackGet->model()->columnCount();

    QString css;
    css = "<style type=\"text/css\">";
    css += "table.tbl {border-width: 3px;border-style: solid;border-color: black;margin-top: 0px;margin-bottom: 0px;color: black;}";
    css += "</style>";

    QString str = "<h3 align=center>Компания \"Амрита\"</h3>";
            str += "<h3 align=center> Накладная №" + modelOHQuery->data(modelOHQuery->index(ui->tableOH->currentIndex().row(), 1)).toString() + " по состоянию на " + modelOHQuery->data(modelOHQuery->index(ui->tableOH->currentIndex().row(), 2)).toString() + "</h3>";
            str += "Дистрибьютор: " + modelOHQuery->data(modelOHQuery->index(ui->tableOH->currentIndex().row(), 4)).toString() + "<br>";
            str += "Номер: " + modelOHQuery->data(modelOHQuery->index(ui->tableOH->currentIndex().row(), 3)).toString();
            str += "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"2\" class=\"tbl\">";
            str += "<tr><th>Артикул</th><th>Название товара</th><th>Цена<br>дистрибютора (грн.)</th><th>Количество</th><th>Балл</th> <th>Получено</th></tr>";

            for (int row = 0; row < rowCount; row++)
            {
                str += "<tr>";
                    for (int column = 0; column < columnCount; column++)
                    {
                        if (ui->tableOHHackGet->isColumnHidden(column) != true)
                        {
                            if(column != 2)
                            {
                                QString data = ui->tableOHHackGet->model()->data(ui->tableOHHackGet->model()->index(row, column)).toString().simplified();
                                str += QString("<td bkcolor=0>%1</td>").arg((!data.isEmpty()) ? data : QString("&nbsp;"));
                            }
                        }
                    }
             str += "</tr>\n";
             }
            str += "</table>";
            str += "<br>Всего товара на: " + ui->lineGetHackAllPrice->text() + " грн.";
            str += "<br>С учётом доставки (5%): " + ui->lineGetHackAllPointsP->text() + " грн.";
            str += "<br>Всего баллов: " + ui->lineGetHackAllPoints->text() + ".<br><br>";

            str += "Отпустил _____________________ (Козачук В.П.)<br><br>";

            str += "Получил ________________ (" + modelOHQuery->data(modelOHQuery->index(ui->tableOH->currentIndex().row(), 4)).toString() + ")<br>";


    out << str;

        QTextDocument *document = new QTextDocument();
        document->setHtml(css+strStream);

        document->print(p);

        delete document;
}
Example #17
0
void MainWindow::on_action_print_text_triggered()
{
    QPrinter printer;
    QPrintDialog printDialog(&printer,this);
    if(printDialog.exec())
    {
        QTextDocument *doc =ui->sans_text->document();
        doc->print(&printer);
    }
}
Example #18
0
void TextRoom::print()
{
     QTextDocument *document = textEdit->document();
     QPrinter printer;

     QPrintDialog *dlg = new QPrintDialog(&printer, this);
     if (dlg->exec() != QDialog::Accepted)
         return;

     document->print(&printer);
}
Example #19
0
void CEphTable::on_pushButton_clicked()
///////////////////////////////////////
{
  QString strStream;
  QTextStream out(&strStream);

  const int rowCount = ui->tableView->model()->rowCount();
  const int columnCount = ui->tableView->model()->columnCount();

  out <<  "<html>\n"
          "<head>\n"
          "<meta Content=\"Text/html; charset=Windows-1251\">\n"
          <<  QString("<title>%1</title>\n").arg(tr("Ephemerids - ") + m_name)
          <<  "</head>\n"
          "<body bgcolor=#ffffff link=#5000A0>\n"
          "<table border=1 cellspacing=0 cellpadding=2>\n";

  // headers
  out << "<tr bgcolor=#f0f0f0>";
  for (int column = 0; column < columnCount; column++)
      if (!ui->tableView->isColumnHidden(column))
          out << QString("<th>%1</th>").arg(ui->tableView->model()->headerData(column, Qt::Horizontal).toString());
  out << "</tr>\n";

  // data table
  for (int row = 0; row < rowCount; row++) {
      out << "<tr>";
      for (int column = 0; column < columnCount; column++) {
          if (!ui->tableView->isColumnHidden(column)) {
              QString data = ui->tableView->model()->data(ui->tableView->model()->index(row, column)).toString().simplified();
              out << QString("<td bkcolor=0>%1</td>").arg((!data.isEmpty()) ? data : QString("&nbsp;"));
          }
      }
      out << "</tr>\n";
  }
  out <<  "</table>\n"
          "</body>\n"
          "</html>\n";

  QTextDocument *document = new QTextDocument();
  document->setHtml(strStream);

  QPrinter printer;

  QPrintDialog *dialog = new QPrintDialog(&printer, this);
  if (dialog->exec() == QDialog::Accepted)
  {
    document->print(&printer);
  }

  delete dialog;
  delete document;

}
Example #20
0
void CMainWindow::doPrint()
{
	QTextDocument *document = textEdit->document();
	QPrinter printer;

	QPrintDialog dlg(&printer, this);
	dlg.setWindowTitle(tr("打印文档"));
	if (dlg.exec() != QDialog::Accepted)
		return;

	document->print(&printer);
}
Example #21
0
void MaMainWindow::print()
{
    QTextDocument *document = mNotesTextEditWidget->document();
    QPrinter printer;

    QPrintDialog *dlg = new QPrintDialog(&printer, this);
    if (dlg->exec() != QDialog::Accepted)
        return;

    document->print(&printer);

    statusBar()->showMessage(tr("Ready"), 2000);
}
Example #22
0
void MainWindow::printFile()
{
//! [0]
    QTextDocument *document = editor->document();
    QPrinter printer;

    QPrintDialog *dlg = new QPrintDialog(&printer, this);
    if (dlg->exec() != QDialog::Accepted)
        return;

    document->print(&printer);
//! [0]
}
Example #23
0
void printerInvoice::printf(const QString &html)
{
	QPrinter p;
	QTextDocument doc;
	QFont font = doc.defaultFont();
	font.setBold(true);
	font.setPointSize(font.pointSize());
	doc.setDefaultFont(font);
	QSizeF s = QSizeF(p.logicalDpiX() * 7.5, p.logicalDpiY() * 7.5);
	doc.setPageSize(s);
	p.setOutputFormat(QPrinter::NativeFormat);
	doc.setHtml(html);
	doc.print(&p);
}
Example #24
0
//! [3]
void MainWindow::print()
{
#ifndef QT_NO_PRINTDIALOG
    QTextDocument *document = textEdit->document();
    QPrinter printer;

    QPrintDialog dlg(&printer, this);
    if (dlg.exec() != QDialog::Accepted) {
        return;
    }

    document->print(&printer);
    statusBar()->showMessage(tr("Ready"), 2000);
#endif
}
// =============================================================================
void TimeTrackingWindow::exportSheet(const QString & path) const
{
    PDFCreator pdfCreator(mTableView, getTrackingModel());
    QPrinter printer(QPrinter::HighResolution);
    printer.setOutputFileName(path);
    printer.setOutputFormat(QPrinter::PdfFormat);
#ifdef PDF_WITH_QTEXTDOCUMENT
    QTextDocument document;
    pdfCreator.populateDocument(&document);
    document.print(&printer);
#else
    pdfCreator.paintPage(&printer, true);
#endif

}
void ResultExporter::saveDataSet(const std::string &path, DataSetPackage* package, boost::function<void (const std::string &, int)> progressCallback)
{

	int maxSleepTime = 5000;
	int sleepTime = 100;
	int delay = 0;

	while (package->isReady() == false)
	{
		if (delay > maxSleepTime)
			break;

		Utils::sleep(sleepTime);
		delay += sleepTime;
	}


	if (_currentFileType == Utils::pdf)
	{
		QString htmlContent = QString::fromStdString(package->analysesHTML());

		//Next code could be a hack to show plots in pdf
		//QUrl url = QUrl::fromLocalFile(QDir::current().absoluteFilePath("htmloutput.html"));
		//QUrl url = QUrl::fromLocalFile(_transferFile);
		//QWebEngineView wdocument;
		//wdocument.setHtml(htmlContent, url); // str1 is the html file stored as QString.

		QTextDocument *document = new QTextDocument();
		document->setHtml(htmlContent);
		QPrinter printer(QPrinter::PrinterResolution);
		printer.setPaperSize(QPrinter::A4);
		printer.setOutputFormat(QPrinter::PdfFormat);
		printer.setOutputFileName(QString::fromStdString(path));
		document->print(&printer);
		delete document;

	}
	else
	{
		boost::nowide::ofstream outfile(path.c_str(), std::ios::out);

		outfile << package->analysesHTML();
		outfile.flush();
		outfile.close();
	}

	progressCallback("Export Html Set", 100);
}
Example #27
0
void PrintingService::printThis(QTableView *tableToPrint){
    QString strStream;
    QTextStream out(&strStream);
    QString strTitle;

    const int rowCount = tableToPrint->model()->rowCount();
    const int columnCount = tableToPrint->model()->columnCount();

    out <<  "<html>\n <head>\n <meta Content=\"Text/html; charset=Windows-1251\">\n"
         <<  QString("<title>%1</title>\n").arg(strTitle)
          <<  "</head>\n"
              "<body bgcolor=#ffffff link=#5000A0>\n"
              "<table border=1 cellspacing=0 cellpadding=2>\n";

    // headers
    out << "<thead><tr bgcolor=#f0f0f0>";
    for (int column = columnCount-1; column >= 0 ; column--)
        if (!tableToPrint->isColumnHidden(column))
            out << QString("<th>%1</th>").arg(tableToPrint->model()->headerData(column, Qt::Horizontal).toString());
    out << "</tr></thead>\n";

    // data table
    for (int row = 0; row < rowCount; row++) {
        out << "<tr>";
        for (int column = columnCount-1; column >=0 ; column--) {
            if (!tableToPrint->isColumnHidden(column)) {
                QString data = tableToPrint->model()->data(tableToPrint->model()->index(row, column)).toString().simplified();
                out << QString("<td bkcolor=0>%1</td>").arg((!data.isEmpty()) ? data : QString("&nbsp;"));
            }
        }
        out << "</tr>\n";
    }
    out <<  "</table>\n"
            "</body>\n"
            "</html>\n";

    QTextDocument *document = new QTextDocument();
    document->setHtml(strStream);

    QPrinter printer;

    QPrintDialog *dialog = new QPrintDialog(&printer, NULL);
    if (dialog->exec() == QDialog::Accepted) {
        document->print(&printer);
    }

    delete document;
}
Example #28
0
void pdfgentor::generate(const QTableView *res)
{
	QTextDocument doc;
	QPrinter printer(QPrinter::HighResolution);

	printer.setOutputFormat(QPrinter::PdfFormat);
	printer.setOutputFileName(QDateTime::currentDateTime().toString("ddMMyyyy-hh:mm:ss")+".pdf");
	printer.setPaperSize(QPrinter::A4);
	printer.setPrintProgram(appname);

	qDebug() << __PRETTY_FUNCTION__ << printer.printProgram() << ' ' << printer.pageRect();
	doc.setHtml(to_html(res, 41)+"<div align=bottom>generated by"+printer.printProgram()+"</div>");
	doc.print(&printer);

	qDebug() << "saved as " << printer.outputFileName();
}
void DashboardWindow::printTreeWidget(QPrinter *printer) {
	//build a table
    QTextDocument doc;
	QTextCursor cursor(&doc);
	QTextTable *table = cursor.insertTable(1, ui.treeWidget->columnCount());
	
	//header
	for (int colNum = 0; colNum < ui.treeWidget->columnCount(); ++colNum) {
		table->cellAt(0, colNum).firstCursorPosition().insertText(ui.treeWidget->headerItem()->text(colNum));
	}
	
	//table content
	treeWidgetToTextTable(ui.treeWidget->invisibleRootItem(), table, 1);
	
	doc.print(printer);
}
Example #30
0
bool Utils::exportAsPdf(const QString &fileName, const QJsonObject &contents) {
    QTextDocument doc;
    QString html;
    QTextStream stream(&html);

    stream << QString("<html><head><style type=\"text/css\">"
                      "h1 {color:red;} "
                      " "
                      "</style></head><body>");

    stream << QString("<h1>%1</h1>").arg(contents["name"].toString());

    stream << QString("<p>%1 <br>").arg(contents["totaltime"].toString());
    stream << QString(tr("Difficulty: %1<br>")).arg(contents["difficulty"].toDouble()); // FIXME: how can I access the array?
    stream << QString(tr("Restriction: %1</p>")).arg(contents["restriction"].toDouble());

    stream << QString(tr("<h2>Ingredients</h2>"));

    stream << "<ul>";
    QJsonArray ingredients = contents["ingredients"].toArray();
    for (int i = 0; i < ingredients.count(); i++) {
        QJsonObject ingredient = ingredients[i].toObject();
        stream << QString("<li>%1 %2 %3</li>").arg(ingredient["quantity"].toDouble())
                .arg(ingredient["type"].toString(), ingredient["name"].toString());
    }
    stream << "</ul>";

    stream << QString(tr("<h2>Directions</h2>"));
    stream << QString("<p>%1</p>").arg(contents["directions"].toString());

    stream << QString(tr("<h2>Photos</h2><br />"));
    QJsonArray photos = contents["photos"].toArray();
    for (int i = 0; i < photos.count(); i++)
        stream << QString("<img src='%1' width=200 />").arg(photos[i].toString());

    stream << QString("</body></html>");

    doc.setHtml(html);

    QPrinter printer;
    printer.setOutputFileName(fileName);
    printer.setOutputFormat(QPrinter::PdfFormat);
    doc.print(&printer);
    printer.newPage();

    return true;
}