Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. how to create a sample HTML file using QFIle
Forum Updated to NodeBB v4.3 + New Features

how to create a sample HTML file using QFIle

Scheduled Pinned Locked Moved Solved General and Desktop
28 Posts 5 Posters 6.4k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ManiRonM ManiRon

    @SGaist yes i tried it, I create a table using HTML . If i do as mentioned by you the table doesnt has the column seperator line .0_1552296582698_Untitled.jpg

    jsulmJ Offline
    jsulmJ Offline
    jsulm
    Lifetime Qt Champion
    wrote on last edited by
    #15

    @ManiRon Can you please show the code you're using now? And the content of the file you're generating (the text, not pictures)?

    https://forum.qt.io/topic/113070/qt-code-of-conduct

    ManiRonM 1 Reply Last reply
    0
    • jsulmJ jsulm

      @ManiRon Can you please show the code you're using now? And the content of the file you're generating (the text, not pictures)?

      ManiRonM Offline
      ManiRonM Offline
      ManiRon
      wrote on last edited by
      #16

      @jsulm

      this whole code will be stored in a QString and this i am printing

      <article><div align="right"></div><header><h1><center><font color="midnightblue"></font></center></h1><h2><font color="dimgray"></font></h2></header></article><table border="1" style="background-color:ghostwhite;border:1px dotted black;width:80%;border-collapse:collapse;"><tr style="background-color:gainsboro;color:black;"></table><style type="text/css">table.tbl {border-width: 1px;border-style: solid;border-color: black;margin-top: 0px;margin-bottom: 0px;color: black;}table.tbl td {padding: 3px;}table.tbl th {padding: 3px;font-size: 18px;}</style><table width="100%" cellspacing="0" class="tbl" style="border:1px solid black;border-collapse:collapse;" align = center ><tr><th><b><center><span style =font-size:10pt;>Application</span></center></b></th><th><b><center><span style =font-size:10pt;>Check Sum</span></center></b></th><th><b><center><span style =font-size:10pt;>Total</span></center></b></th><th><b><center><span style =font-size:10pt;>No</span></center></b></th><th><b><center><span style =font-size:10pt;>Tested By</span></center></b></th><th><b><center><span style =font-size:10pt;></span></center></b></th><th><b><center><span style =font-size:10pt;></span></center></b></th></tr><tr><td><center><span style =font-size:10pt;>1.00</span></center></td><td><center><span style =font-size:10pt;>123</span></center></td><td><center><span style =font-size:10pt;></span></center></td><td><center><span style =font-size:10pt;></span></center></td><td><center><span style =font-size:10pt;></span></center></td><td><center><span style =font-size:10pt;></span></center></td><td><center><span style =font-size:10pt;></span></center></td></tr></table><br><br><br><style type="text/css">table.tbl1 {border-width: 1px;border-style: solid;border-color: black;margin-top: 0px;margin-bottom: 0px;color: black;}table.tbl1 td {padding: 3px;}table.tbl1 th {padding: 3px;font-size: 18px;}</style><table width="100%" cellspacing="0" class="tbl1"><tr><th>Name</th><th>Data</th><th>data</th><th>Test Result</th></tr><tr><td><b><span style =font-size:10pt;>sss</span></b></td><td>Data1</td><td>Data2</td><td><b><span style =font-size:10pt;><font color=Green>PASS</font></span></b></td></tr></table><br><br><br><br><hr><br><br>

      jsulmJ 1 Reply Last reply
      0
      • ManiRonM ManiRon

        @jsulm

        this whole code will be stored in a QString and this i am printing

        <article><div align="right"></div><header><h1><center><font color="midnightblue"></font></center></h1><h2><font color="dimgray"></font></h2></header></article><table border="1" style="background-color:ghostwhite;border:1px dotted black;width:80%;border-collapse:collapse;"><tr style="background-color:gainsboro;color:black;"></table><style type="text/css">table.tbl {border-width: 1px;border-style: solid;border-color: black;margin-top: 0px;margin-bottom: 0px;color: black;}table.tbl td {padding: 3px;}table.tbl th {padding: 3px;font-size: 18px;}</style><table width="100%" cellspacing="0" class="tbl" style="border:1px solid black;border-collapse:collapse;" align = center ><tr><th><b><center><span style =font-size:10pt;>Application</span></center></b></th><th><b><center><span style =font-size:10pt;>Check Sum</span></center></b></th><th><b><center><span style =font-size:10pt;>Total</span></center></b></th><th><b><center><span style =font-size:10pt;>No</span></center></b></th><th><b><center><span style =font-size:10pt;>Tested By</span></center></b></th><th><b><center><span style =font-size:10pt;></span></center></b></th><th><b><center><span style =font-size:10pt;></span></center></b></th></tr><tr><td><center><span style =font-size:10pt;>1.00</span></center></td><td><center><span style =font-size:10pt;>123</span></center></td><td><center><span style =font-size:10pt;></span></center></td><td><center><span style =font-size:10pt;></span></center></td><td><center><span style =font-size:10pt;></span></center></td><td><center><span style =font-size:10pt;></span></center></td><td><center><span style =font-size:10pt;></span></center></td></tr></table><br><br><br><style type="text/css">table.tbl1 {border-width: 1px;border-style: solid;border-color: black;margin-top: 0px;margin-bottom: 0px;color: black;}table.tbl1 td {padding: 3px;}table.tbl1 th {padding: 3px;font-size: 18px;}</style><table width="100%" cellspacing="0" class="tbl1"><tr><th>Name</th><th>Data</th><th>data</th><th>Test Result</th></tr><tr><td><b><span style =font-size:10pt;>sss</span></b></td><td>Data1</td><td>Data2</td><td><b><span style =font-size:10pt;><font color=Green>PASS</font></span></b></td></tr></table><br><br><br><br><hr><br><br>

        jsulmJ Offline
        jsulmJ Offline
        jsulm
        Lifetime Qt Champion
        wrote on last edited by jsulm
        #17

        @ManiRon This is not valid HTML.
        And by "code" I mean your C++ code to generate the HTML file...

        https://forum.qt.io/topic/113070/qt-code-of-conduct

        ManiRonM 2 Replies Last reply
        0
        • jsulmJ jsulm

          @ManiRon This is not valid HTML.
          And by "code" I mean your C++ code to generate the HTML file...

          ManiRonM Offline
          ManiRonM Offline
          ManiRon
          wrote on last edited by ManiRon
          #18

          @jsulm

          QString qHostVer = "<b><center><span style =font-size:10pt;>Application</span></center></b>";

          QString qCheckSum = "<b><center><span style =font-size:10pt;>123</span></center></b>";

          QString qTotal= "<b><center><span style =font-size:10pt;>Total</span></center></b>";

          QString qNo= "<b><center><span style =font-size:10pt;>No</span></center></b>";

          QString qTestedBy = "<b><center><span style =font-size:10pt;>Tested By</span></center></b>";

                   css1 = "<style type=\"text/css\">";
                   css1 += "table.tbl {border-width: 1px;border-style: solid;border-color: black;margin-top: 0px;margin-bottom: 0px;color: black;}";
                   css1 += "table.tbl td {padding: 3px;}";
                   css1 += "table.tbl th {padding: 3px;font-size: 18px;}";
                   css1+="</style>";
                   text1 += "<table width=\"100%\" cellspacing=\"0\" class=\"tbl\" style=\"border:1px solid black;border-collapse:collapse;\" align = center >";
                   text1 +=("<tr><th>"+qHostVer+"</th><th>"+qCheckSum+"</th><th>"+qTargetCheckSum+"</th>"\
                            "<th>"+qfont+"</th><th>"+qTestedBy+"</th></tr>");
                  QString  text1 +=("<tr><td><center><span style =font-size:10pt;>" + 1.00 +"</span></center></td>"\
                            "<td><center><span style =font-size:10pt;>" + 123 +"</span></center></td>"\
                            "<td><center><span style =font-size:10pt;>" +  +"</span></center></td>"\
                            "<td><center><span style =font-size:10pt;>" + o +"</span></center></td>"\
                            "<td><center><span style =font-size:10pt;>"+ +"</span></center></td>");
          

          qRep = css+text;

          QFile qHtmlFile(file path);
          qHtmlFile.write(qRep);
          qHtmlFile.close();

          jsulmJ 1 Reply Last reply
          0
          • jsulmJ jsulm

            @ManiRon This is not valid HTML.
            And by "code" I mean your C++ code to generate the HTML file...

            ManiRonM Offline
            ManiRonM Offline
            ManiRon
            wrote on last edited by
            #19

            @jsulm this code works fine when i use QTextbrowser, But i dont want to use QTextBrowser as it cannot be used inside a QThread

            1 Reply Last reply
            0
            • ManiRonM ManiRon

              @jsulm

              QString qHostVer = "<b><center><span style =font-size:10pt;>Application</span></center></b>";

              QString qCheckSum = "<b><center><span style =font-size:10pt;>123</span></center></b>";

              QString qTotal= "<b><center><span style =font-size:10pt;>Total</span></center></b>";

              QString qNo= "<b><center><span style =font-size:10pt;>No</span></center></b>";

              QString qTestedBy = "<b><center><span style =font-size:10pt;>Tested By</span></center></b>";

                       css1 = "<style type=\"text/css\">";
                       css1 += "table.tbl {border-width: 1px;border-style: solid;border-color: black;margin-top: 0px;margin-bottom: 0px;color: black;}";
                       css1 += "table.tbl td {padding: 3px;}";
                       css1 += "table.tbl th {padding: 3px;font-size: 18px;}";
                       css1+="</style>";
                       text1 += "<table width=\"100%\" cellspacing=\"0\" class=\"tbl\" style=\"border:1px solid black;border-collapse:collapse;\" align = center >";
                       text1 +=("<tr><th>"+qHostVer+"</th><th>"+qCheckSum+"</th><th>"+qTargetCheckSum+"</th>"\
                                "<th>"+qfont+"</th><th>"+qTestedBy+"</th></tr>");
                      QString  text1 +=("<tr><td><center><span style =font-size:10pt;>" + 1.00 +"</span></center></td>"\
                                "<td><center><span style =font-size:10pt;>" + 123 +"</span></center></td>"\
                                "<td><center><span style =font-size:10pt;>" +  +"</span></center></td>"\
                                "<td><center><span style =font-size:10pt;>" + o +"</span></center></td>"\
                                "<td><center><span style =font-size:10pt;>"+ +"</span></center></td>");
              

              qRep = css+text;

              QFile qHtmlFile(file path);
              qHtmlFile.write(qRep);
              qHtmlFile.close();

              jsulmJ Offline
              jsulmJ Offline
              jsulm
              Lifetime Qt Champion
              wrote on last edited by
              #20

              @ManiRon You're not generating valid HTML

              https://forum.qt.io/topic/113070/qt-code-of-conduct

              ManiRonM 1 Reply Last reply
              0
              • jsulmJ jsulm

                @ManiRon You're not generating valid HTML

                ManiRonM Offline
                ManiRonM Offline
                ManiRon
                wrote on last edited by
                #21

                @jsulm so what change i should make

                jsulmJ 1 Reply Last reply
                0
                • ManiRonM ManiRon

                  @jsulm so what change i should make

                  jsulmJ Offline
                  jsulmJ Offline
                  jsulm
                  Lifetime Qt Champion
                  wrote on last edited by
                  #22

                  @ManiRon This is how a HTML document should look like:

                  <html>
                    <head>
                     HEADER IF NEEDED 
                    </head>
                    <body>
                      YOUR CONTENT HERE
                    </body>
                  </html>
                  

                  https://forum.qt.io/topic/113070/qt-code-of-conduct

                  ManiRonM 1 Reply Last reply
                  1
                  • VRoninV Offline
                    VRoninV Offline
                    VRonin
                    wrote on last edited by
                    #23

                    Since you are hard coding stuff anyway, you can use QXmlStreamWriter directly on the QFile device to generate html:

                    QFile qHtmlFile("myFile.html");
                    if(qHtmlFile.open(QIODevice::WriteOnly){
                    QTextStream startDocStream(&qHtmlFile);
                    startDocStream << QStringLiteral("<!DOCTYPE html>");
                    QXmlStreamWriter htmlWriter(&qHtmlFile);
                    htmlWriter.writeStartElement(QStringLiteral("html"));
                    htmlWriter.writeAttribute(QStringLiteral("xmlns"),QStringLiteral("http://www.w3.org/1999/xhtml"));
                    htmlWriter.writeAttribute(QStringLiteral("lang"),QStringLiteral("en"));
                    htmlWriter.writeAttribute(QStringLiteral("xml"),QStringLiteral("lang"),QStringLiteral("en"));
                    htmlWriter.writeStartElement(QStringLiteral("head"));
                    htmlWriter.writeStartElement(QStringLiteral("meta"));
                    htmlWriter.writeAttribute(QStringLiteral("http-equiv"),QStringLiteral("Content-Type"));
                    htmlWriter.writeAttribute(QStringLiteral("content"),QStringLiteral("text/html; charset=utf-8"));
                    htmlWriter.writeEndElement(); //meta
                    htmlWriter.writeStartElement(QStringLiteral("title"));
                    htmlWriter.writeCharacters(QStringLiteral("Test Page"));
                    htmlWriter.writeEndElement(); //title
                    htmlWriter.writeStartElement(QStringLiteral("style"));
                    htmlWriter.writeCharacters(QStringLiteral("h1, h2, h3, h4 { color: rgb(83,129,53) } h1 { text-align: center; }"));
                    htmlWriter.writeEndElement(); //style
                    htmlWriter.writeEndElement(); //head
                    htmlWriter.writeStartElement(QStringLiteral("body"));
                    htmlWriter.writeStartElement(QStringLiteral("h1"));
                    htmlWriter.writeCharacters(QStringLiteral("Test Page"));
                    htmlWriter.writeEndElement(); //h1
                    htmlWriter.writeStartElement(QStringLiteral("h2"));
                    htmlWriter.writeCharacters(QStringLiteral("Lorem"));
                    htmlWriter.writeEndElement(); //h2
                    htmlWriter.writeStartElement(QStringLiteral("p"));
                    htmlWriter.writeCharacters(QStringLiteral("Lorem ipsum dolor sit amet, consectetur adipiscing elit."));
                    htmlWriter.writeEndElement(); //p
                    htmlWriter.writeEndElement(); //body
                    htmlWriter.writeEndElement(); //html
                    }
                    

                    "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                    ~Napoleon Bonaparte

                    On a crusade to banish setIndexWidget() from the holy land of Qt

                    ManiRonM 2 Replies Last reply
                    5
                    • jsulmJ jsulm

                      @ManiRon This is how a HTML document should look like:

                      <html>
                        <head>
                         HEADER IF NEEDED 
                        </head>
                        <body>
                          YOUR CONTENT HERE
                        </body>
                      </html>
                      
                      ManiRonM Offline
                      ManiRonM Offline
                      ManiRon
                      wrote on last edited by
                      #24

                      @jsulm I have not defined the html tag but still it was generating the html file correctly but when i removed the QTextbrowser , still it was generating correctly but the internal borders of the table is only the major missing.

                      1 Reply Last reply
                      0
                      • VRoninV VRonin

                        Since you are hard coding stuff anyway, you can use QXmlStreamWriter directly on the QFile device to generate html:

                        QFile qHtmlFile("myFile.html");
                        if(qHtmlFile.open(QIODevice::WriteOnly){
                        QTextStream startDocStream(&qHtmlFile);
                        startDocStream << QStringLiteral("<!DOCTYPE html>");
                        QXmlStreamWriter htmlWriter(&qHtmlFile);
                        htmlWriter.writeStartElement(QStringLiteral("html"));
                        htmlWriter.writeAttribute(QStringLiteral("xmlns"),QStringLiteral("http://www.w3.org/1999/xhtml"));
                        htmlWriter.writeAttribute(QStringLiteral("lang"),QStringLiteral("en"));
                        htmlWriter.writeAttribute(QStringLiteral("xml"),QStringLiteral("lang"),QStringLiteral("en"));
                        htmlWriter.writeStartElement(QStringLiteral("head"));
                        htmlWriter.writeStartElement(QStringLiteral("meta"));
                        htmlWriter.writeAttribute(QStringLiteral("http-equiv"),QStringLiteral("Content-Type"));
                        htmlWriter.writeAttribute(QStringLiteral("content"),QStringLiteral("text/html; charset=utf-8"));
                        htmlWriter.writeEndElement(); //meta
                        htmlWriter.writeStartElement(QStringLiteral("title"));
                        htmlWriter.writeCharacters(QStringLiteral("Test Page"));
                        htmlWriter.writeEndElement(); //title
                        htmlWriter.writeStartElement(QStringLiteral("style"));
                        htmlWriter.writeCharacters(QStringLiteral("h1, h2, h3, h4 { color: rgb(83,129,53) } h1 { text-align: center; }"));
                        htmlWriter.writeEndElement(); //style
                        htmlWriter.writeEndElement(); //head
                        htmlWriter.writeStartElement(QStringLiteral("body"));
                        htmlWriter.writeStartElement(QStringLiteral("h1"));
                        htmlWriter.writeCharacters(QStringLiteral("Test Page"));
                        htmlWriter.writeEndElement(); //h1
                        htmlWriter.writeStartElement(QStringLiteral("h2"));
                        htmlWriter.writeCharacters(QStringLiteral("Lorem"));
                        htmlWriter.writeEndElement(); //h2
                        htmlWriter.writeStartElement(QStringLiteral("p"));
                        htmlWriter.writeCharacters(QStringLiteral("Lorem ipsum dolor sit amet, consectetur adipiscing elit."));
                        htmlWriter.writeEndElement(); //p
                        htmlWriter.writeEndElement(); //body
                        htmlWriter.writeEndElement(); //html
                        }
                        
                        ManiRonM Offline
                        ManiRonM Offline
                        ManiRon
                        wrote on last edited by
                        #25

                        @VRonin this might make it a little tough i think so sir?

                        1 Reply Last reply
                        0
                        • VRoninV VRonin

                          Since you are hard coding stuff anyway, you can use QXmlStreamWriter directly on the QFile device to generate html:

                          QFile qHtmlFile("myFile.html");
                          if(qHtmlFile.open(QIODevice::WriteOnly){
                          QTextStream startDocStream(&qHtmlFile);
                          startDocStream << QStringLiteral("<!DOCTYPE html>");
                          QXmlStreamWriter htmlWriter(&qHtmlFile);
                          htmlWriter.writeStartElement(QStringLiteral("html"));
                          htmlWriter.writeAttribute(QStringLiteral("xmlns"),QStringLiteral("http://www.w3.org/1999/xhtml"));
                          htmlWriter.writeAttribute(QStringLiteral("lang"),QStringLiteral("en"));
                          htmlWriter.writeAttribute(QStringLiteral("xml"),QStringLiteral("lang"),QStringLiteral("en"));
                          htmlWriter.writeStartElement(QStringLiteral("head"));
                          htmlWriter.writeStartElement(QStringLiteral("meta"));
                          htmlWriter.writeAttribute(QStringLiteral("http-equiv"),QStringLiteral("Content-Type"));
                          htmlWriter.writeAttribute(QStringLiteral("content"),QStringLiteral("text/html; charset=utf-8"));
                          htmlWriter.writeEndElement(); //meta
                          htmlWriter.writeStartElement(QStringLiteral("title"));
                          htmlWriter.writeCharacters(QStringLiteral("Test Page"));
                          htmlWriter.writeEndElement(); //title
                          htmlWriter.writeStartElement(QStringLiteral("style"));
                          htmlWriter.writeCharacters(QStringLiteral("h1, h2, h3, h4 { color: rgb(83,129,53) } h1 { text-align: center; }"));
                          htmlWriter.writeEndElement(); //style
                          htmlWriter.writeEndElement(); //head
                          htmlWriter.writeStartElement(QStringLiteral("body"));
                          htmlWriter.writeStartElement(QStringLiteral("h1"));
                          htmlWriter.writeCharacters(QStringLiteral("Test Page"));
                          htmlWriter.writeEndElement(); //h1
                          htmlWriter.writeStartElement(QStringLiteral("h2"));
                          htmlWriter.writeCharacters(QStringLiteral("Lorem"));
                          htmlWriter.writeEndElement(); //h2
                          htmlWriter.writeStartElement(QStringLiteral("p"));
                          htmlWriter.writeCharacters(QStringLiteral("Lorem ipsum dolor sit amet, consectetur adipiscing elit."));
                          htmlWriter.writeEndElement(); //p
                          htmlWriter.writeEndElement(); //body
                          htmlWriter.writeEndElement(); //html
                          }
                          
                          ManiRonM Offline
                          ManiRonM Offline
                          ManiRon
                          wrote on last edited by ManiRon
                          #26

                          @VRonin @jsulm any other better way if possible with the same way in which i have done

                          1 Reply Last reply
                          0
                          • SGaistS Offline
                            SGaistS Offline
                            SGaist
                            Lifetime Qt Champion
                            wrote on last edited by
                            #27

                            Did you try to compare the HTML you generated with QTextBrowser and the one you are generating now ?

                            Interested in AI ? www.idiap.ch
                            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                            ManiRonM 1 Reply Last reply
                            1
                            • SGaistS SGaist

                              Did you try to compare the HTML you generated with QTextBrowser and the one you are generating now ?

                              ManiRonM Offline
                              ManiRonM Offline
                              ManiRon
                              wrote on last edited by
                              #28

                              @SGaist it worked when i added "table.tbl td {border: 2px solid black;}, table.tbl th {border: 2px solid black;}" these two line .

                              1 Reply Last reply
                              0

                              • Login

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Categories
                              • Recent
                              • Tags
                              • Popular
                              • Users
                              • Groups
                              • Search
                              • Get Qt Extensions
                              • Unsolved