2017-01-27 4 views
1

Ich habe diesen Code zum Drucken meiner Daten. Aber ich konnte keine HTML-Zeichenfolge zu CSS hinzufügen. Ich muss PDF-Dokument zu CSS hinzufügen. Weil HTML-String so nah an der rechten Seite des Papiers ist.Wie füge ich QT HTML String zur CSS Datei hinzu?

QString html= 
      "<!DOCTYPE html><html><body><b>"+json_map["Sample"].toString()+": </b><a>"+ui->sampleText->text()+"</a><br><b>"+json_map["Operator"].toString()+" : </b> <a>"+ui->operatorText->text()+"</a><br><b>"+json_map["Evalutaion"].toString()+" : </b> <a>"+ui->evalText->text()+" </a><br>"+ 
      "<b>"+json_map["Date"].toString()+" : </b> <a>"+ui->date->text()+"</a><br><br>"+ 
      "<b>"+json_map["Mixer"].toString()+" : </b> <a>300 </a>"+ 
      "<b>"+json_map["Moisture"].toString()+ ": </b> <a>"+ui->moistureText->text()+"</a><br>"+ 
      "<a>"+json_map["Consistency"].toString()+ ": </a><b></b><a>"+json_map["With"].toString()+" </a><a>"+ui->absorptionText->text()+"</a><br><br>"+ 
      "<b>"+json_map["Water500Fu"].toString()+" : </b> <a></a><br>"+ 
      "<b>"+json_map["Water14%"].toString()+" : </b> <a></a><br>"+ 
      "<b>"+json_map["DevelopmentTime"].toString()+" : </b> <a></a><br>"+ 
      "<b>"+json_map["Stability"].toString()+" : </b> <a></a><br>"+ 
      "<b>"+json_map["Softening10min"].toString()+" </b> <a></a><br>"+ 
      "<b>"+json_map["Softening12min"].toString()+" : </b><a></a><br>"+ 
      "<b>"+json_map["FQN"].toString()+" : </b> <a></a><br>"+ 
      "<b>"+json_map["Remarks"].toString()+" : </b><a>"+ui->remarkText->text()+"</a><br>"+ 
      "</body>"+ 
      "</html>"; 

    QTextDocument parent; 
    parent.setHtml(html); 
    QPrinter printer(QPrinter::HighResolution); 
    printer.setOutputFormat(QPrinter::PdfFormat); 
    printer.setColorMode(QPrinter::Color); 
    printer.setOutputFileName(QDir::homePath()+"/Desktop/"+ui->operatorText->text()); 
    QPrintDialog *dlg = new QPrintDialog(&printer, this); 
    dlg->setWindowTitle(QObject::tr("Bastak Test")); 

    if(dlg->exec() == QDialog::Accepted) { 

     QPainter painter(&printer); 
     painter.drawPixmap(500, 5500, QPixmap(ui->qcustom->toPixmap(800,500,10.0))); 
     parent.setDefaultFont(QFont("Times", 200)); 
     parent.drawContents(&painter); 
     painter.end(); 
     //formula.savejson(printer.outputFileName()); 

    } 
    delete dlg; 

Antwort

1

Ich habe einige Schwierigkeiten, Ihre Frage zu verstehen, so dass ich ein paar Annahmen und warten auf Ihre Antwort:

  • Sie möchten ein PDF von HTML zu erzeugen,
  • Sie müssen anwenden CSS auf die HTML-

So ist es zu testen, habe ich das folgende Mindest Beispiel:

#include <memory> 
#include <QApplication> 
#include <QPrinter> 
#include <QString> 
#include <QDebug> 
#include <QTextDocument> 
#include <QDir> 
#include <QPrintDialog> 
#include <QPainter> 

int main(int argn, char **argc) 
{ 
    QApplication app(argn, argc); 
    QString html="<!DOCTYPE html><html><body style='color: blue;'>Hello World!</body></html>"; 

    QTextDocument parent; 
    parent.setHtml(html); 
    QPrinter printer(QPrinter::HighResolution); 
    printer.setOutputFormat(QPrinter::PdfFormat); 
    printer.setColorMode(QPrinter::Color); 
    printer.setOutputFileName("test.pdf"); 

    QPainter painter(&printer); 
    parent.setDefaultFont(QFont("Times", 200)); 
    parent.drawContents(&painter); 
    painter.end(); 

    return 0; 
} 

ich folgendes Ergebnis:

enter image description here

+0

ich meine Antwort bekam danke für die Unterstützung. Entschuldigung für meine Sprache. :) –

Verwandte Themen