簡體   English   中英

如何將 QT HTML 字符串添加到 CSS 文件中?

[英]How to add QT HTML String to CSS file?

我有這個代碼來打印我的數據。 但我無法將 html 字符串添加到 css。 我需要將 pdf 文檔添加到 css。 因為 html 字符串非常靠近紙張的右側。

 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;

我有點理解你的問題,所以我做一些假設,等待你的答復:

  • 您想從 HTML 生成 PDF,
  • 您需要將 CSS 應用於 HTML

所以為了測試它,我做了以下最小的例子:

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

我得到以下結果:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM