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.3k 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.
  • J jsulm
    11 Mar 2019, 09:30

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

    M Offline
    M Offline
    ManiRon
    wrote on 11 Mar 2019, 09:31 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>

    J 1 Reply Last reply 11 Mar 2019, 09:33
    0
    • M ManiRon
      11 Mar 2019, 09:31

      @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>

      J Offline
      J Offline
      jsulm
      Lifetime Qt Champion
      wrote on 11 Mar 2019, 09:33 last edited by jsulm 3 Nov 2019, 09:34
      #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

      M 2 Replies Last reply 11 Mar 2019, 09:37
      0
      • J jsulm
        11 Mar 2019, 09:33

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

        M Offline
        M Offline
        ManiRon
        wrote on 11 Mar 2019, 09:37 last edited by ManiRon 3 Nov 2019, 09:39
        #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();

        J 1 Reply Last reply 11 Mar 2019, 09:41
        0
        • J jsulm
          11 Mar 2019, 09:33

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

          M Offline
          M Offline
          ManiRon
          wrote on 11 Mar 2019, 09:40 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
          • M ManiRon
            11 Mar 2019, 09:37

            @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();

            J Offline
            J Offline
            jsulm
            Lifetime Qt Champion
            wrote on 11 Mar 2019, 09:41 last edited by
            #20

            @ManiRon You're not generating valid HTML

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

            M 1 Reply Last reply 11 Mar 2019, 09:43
            0
            • J jsulm
              11 Mar 2019, 09:41

              @ManiRon You're not generating valid HTML

              M Offline
              M Offline
              ManiRon
              wrote on 11 Mar 2019, 09:43 last edited by
              #21

              @jsulm so what change i should make

              J 1 Reply Last reply 11 Mar 2019, 09:45
              0
              • M ManiRon
                11 Mar 2019, 09:43

                @jsulm so what change i should make

                J Offline
                J Offline
                jsulm
                Lifetime Qt Champion
                wrote on 11 Mar 2019, 09:45 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

                M 1 Reply Last reply 11 Mar 2019, 10:07
                1
                • V Offline
                  V Offline
                  VRonin
                  wrote on 11 Mar 2019, 10:00 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

                  M 2 Replies Last reply 11 Mar 2019, 10:08
                  5
                  • J jsulm
                    11 Mar 2019, 09:45

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

                    <html>
                      <head>
                       HEADER IF NEEDED 
                      </head>
                      <body>
                        YOUR CONTENT HERE
                      </body>
                    </html>
                    
                    M Offline
                    M Offline
                    ManiRon
                    wrote on 11 Mar 2019, 10:07 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
                    • V VRonin
                      11 Mar 2019, 10:00

                      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
                      }
                      
                      M Offline
                      M Offline
                      ManiRon
                      wrote on 11 Mar 2019, 10:08 last edited by
                      #25

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

                      1 Reply Last reply
                      0
                      • V VRonin
                        11 Mar 2019, 10:00

                        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
                        }
                        
                        M Offline
                        M Offline
                        ManiRon
                        wrote on 11 Mar 2019, 10:28 last edited by ManiRon 3 Nov 2019, 10:32
                        #26

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

                        1 Reply Last reply
                        0
                        • S Offline
                          S Offline
                          SGaist
                          Lifetime Qt Champion
                          wrote on 11 Mar 2019, 22:45 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

                          M 1 Reply Last reply 13 Mar 2019, 07:03
                          1
                          • S SGaist
                            11 Mar 2019, 22:45

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

                            M Offline
                            M Offline
                            ManiRon
                            wrote on 13 Mar 2019, 07:03 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

                            25/28

                            11 Mar 2019, 10:08

                            • Login

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