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.1k 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.
  • 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