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. Create and write into a PDF File
Forum Updated to NodeBB v4.3 + New Features

Create and write into a PDF File

Scheduled Pinned Locked Moved Solved General and Desktop
21 Posts 8 Posters 21.9k Views 4 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.
  • EddyE Eddy

    Hi,

    do you have

    QT += printsupport
    

    in your pro file?

    M Offline
    M Offline
    Marcel92
    wrote on last edited by
    #4

    @Eddy Yes.

    @Wieland

    Thanks for your answers.
    I am not sure about the arguments in painter.drawText().
    When i run the programm and press the button, QT says "QPainter::begin(): Returned false
    Could you help me with that?

    void MainWindow::writePdf()
    {
    const QString filename("D://Programme/QT/MeineProjekte/Projekt/test.pdf");

    QString testData = "test";
    QPdfWriter pdfwriter(filename);
    pdfwriter.setPageSize(QPageSize(QPageSize::A4));
    QPainter painter(&pdfwriter);
    painter.drawText(0,0, testData);
    

    }

    1 Reply Last reply
    0
    • hskoglundH Offline
      hskoglundH Offline
      hskoglund
      wrote on last edited by
      #5

      Hi, it seems to be 2 slashes after D:, maybe try
      ``const QString filename("`D:/Programme/QT/MeineProjekte/Projekt/test.pdf");```

      M 2 Replies Last reply
      3
      • hskoglundH hskoglund

        Hi, it seems to be 2 slashes after D:, maybe try
        ``const QString filename("`D:/Programme/QT/MeineProjekte/Projekt/test.pdf");```

        M Offline
        M Offline
        Marcel92
        wrote on last edited by
        #6
        This post is deleted!
        1 Reply Last reply
        0
        • hskoglundH hskoglund

          Hi, it seems to be 2 slashes after D:, maybe try
          ``const QString filename("`D:/Programme/QT/MeineProjekte/Projekt/test.pdf");```

          M Offline
          M Offline
          Marcel92
          wrote on last edited by
          #7

          @hskoglund

          Thanks a lot. It works now.

          1 Reply Last reply
          0
          • D Offline
            D Offline
            drich
            wrote on last edited by
            #8

            Hi I want to create a program that will create a pdf file with a logo/image to it. using a QPrintPreviewDialog, QPixmap, QPrint, QDialog.

            mrjjM 1 Reply Last reply
            0
            • D drich

              Hi I want to create a program that will create a pdf file with a logo/image to it. using a QPrintPreviewDialog, QPixmap, QPrint, QDialog.

              mrjjM Offline
              mrjjM Offline
              mrjj
              Lifetime Qt Champion
              wrote on last edited by
              #9

              @drich
              hi
              Its same concept.
              Just use
              painter2.drawPixmap instead of drawText

              D 1 Reply Last reply
              1
              • mrjjM mrjj

                @drich
                hi
                Its same concept.
                Just use
                painter2.drawPixmap instead of drawText

                D Offline
                D Offline
                drich
                wrote on last edited by
                #10

                @mrjj
                thanks
                I still having error.
                This is my code
                void MainWindow::on_pushButton_createpdf_clicked()
                {
                QPrintPreviewDialog dialog;
                QPainter painter(this);
                connect(&dialog, SIGNAL(paintRequested(QPrinter*)), this, SLOT(print(QPrinter*)));
                dialog.exec();
                painter.setPen(Qt::black);
                painter.setFont(QFont("Arial", 30));
                painter.drawText(rect(), Qt::AlignCenter, "Technological University of the Philipines - Manila");
                painter.end();
                painter.drawPixmap (C:\User\Downloads\logo.png);
                }

                artwawA jsulmJ 2 Replies Last reply
                0
                • D drich

                  @mrjj
                  thanks
                  I still having error.
                  This is my code
                  void MainWindow::on_pushButton_createpdf_clicked()
                  {
                  QPrintPreviewDialog dialog;
                  QPainter painter(this);
                  connect(&dialog, SIGNAL(paintRequested(QPrinter*)), this, SLOT(print(QPrinter*)));
                  dialog.exec();
                  painter.setPen(Qt::black);
                  painter.setFont(QFont("Arial", 30));
                  painter.drawText(rect(), Qt::AlignCenter, "Technological University of the Philipines - Manila");
                  painter.end();
                  painter.drawPixmap (C:\User\Downloads\logo.png);
                  }

                  artwawA Offline
                  artwawA Offline
                  artwaw
                  wrote on last edited by
                  #11

                  @drich Hi,
                  what kind of an error?
                  Have you read the QPainter documentation?

                  For more information please re-read.

                  Kind Regards,
                  Artur

                  D 1 Reply Last reply
                  1
                  • D drich

                    @mrjj
                    thanks
                    I still having error.
                    This is my code
                    void MainWindow::on_pushButton_createpdf_clicked()
                    {
                    QPrintPreviewDialog dialog;
                    QPainter painter(this);
                    connect(&dialog, SIGNAL(paintRequested(QPrinter*)), this, SLOT(print(QPrinter*)));
                    dialog.exec();
                    painter.setPen(Qt::black);
                    painter.setFont(QFont("Arial", 30));
                    painter.drawText(rect(), Qt::AlignCenter, "Technological University of the Philipines - Manila");
                    painter.end();
                    painter.drawPixmap (C:\User\Downloads\logo.png);
                    }

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

                    @drich said in Create and write into a PDF File:

                    painter.end();
                    painter.drawPixmap (C:\User\Downloads\logo.png);

                    I guess

                    painter.end();
                    

                    should be last line and

                    painter.drawPixmap (C:\User\Downloads\logo.png);
                    

                    is not valid C++. Should be:

                    painter.drawPixmap ("C:/User/Downloads/logo.png");

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

                    D 1 Reply Last reply
                    0
                    • jsulmJ jsulm

                      @drich said in Create and write into a PDF File:

                      painter.end();
                      painter.drawPixmap (C:\User\Downloads\logo.png);

                      I guess

                      painter.end();
                      

                      should be last line and

                      painter.drawPixmap (C:\User\Downloads\logo.png);
                      

                      is not valid C++. Should be:

                      painter.drawPixmap ("C:/User/Downloads/logo.png");
                      D Offline
                      D Offline
                      drich
                      wrote on last edited by
                      #13

                      @jsulm ahh okie thanks. I try it.

                      1 Reply Last reply
                      0
                      • artwawA artwaw

                        @drich Hi,
                        what kind of an error?
                        Have you read the QPainter documentation?

                        D Offline
                        D Offline
                        drich
                        wrote on last edited by
                        #14

                        @artwaw it says error: no matching function for call to 'QPainter::drawPixmap(const char [52])'

                        artwawA 1 Reply Last reply
                        0
                        • D drich

                          @artwaw it says error: no matching function for call to 'QPainter::drawPixmap(const char [52])'

                          artwawA Offline
                          artwawA Offline
                          artwaw
                          wrote on last edited by
                          #15

                          @drich That's the problem @jsulm addressed in his reply.

                          For more information please re-read.

                          Kind Regards,
                          Artur

                          D 2 Replies Last reply
                          0
                          • artwawA artwaw

                            @drich That's the problem @jsulm addressed in his reply.

                            D Offline
                            D Offline
                            drich
                            wrote on last edited by
                            #16

                            @artwaw in the painter.drawPixmap

                            drawPixmap was underlined and it note "Too few arguments"

                            what does it means?

                            artwawA 1 Reply Last reply
                            0
                            • artwawA artwaw

                              @drich That's the problem @jsulm addressed in his reply.

                              D Offline
                              D Offline
                              drich
                              wrote on last edited by
                              #17

                              @artwaw hi, I remove the painter.Pixmap and I run my program I clicked the createpdf button and it show a blank paper it didn't show this
                              painter.setPen(Qt::black);
                              painter.setFont(QFont("Arial", 30));
                              painter.drawText(rect(), Qt::AlignCenter, "Technological University of the Philipines - Manila");

                              artwawA 1 Reply Last reply
                              0
                              • D drich

                                @artwaw in the painter.drawPixmap

                                drawPixmap was underlined and it note "Too few arguments"

                                what does it means?

                                artwawA Offline
                                artwawA Offline
                                artwaw
                                wrote on last edited by
                                #18

                                @drich That means that you passed too few arguments to the method. Please refer to the documentation I linked in one of my previous posts - in that webpage together with a quite detailed overview on how to use QPainter there is also a list of the methods provided. You will see that QPainter::drawPixmap comes in many variants with different arguments list so you can choose the one that best suits your needs.
                                It seems to me that taking a look at Paint System would also bring you some significant benefits in terms of overall understanding how to accomplish what you aim for.

                                For more information please re-read.

                                Kind Regards,
                                Artur

                                D 1 Reply Last reply
                                2
                                • D drich

                                  @artwaw hi, I remove the painter.Pixmap and I run my program I clicked the createpdf button and it show a blank paper it didn't show this
                                  painter.setPen(Qt::black);
                                  painter.setFont(QFont("Arial", 30));
                                  painter.drawText(rect(), Qt::AlignCenter, "Technological University of the Philipines - Manila");

                                  artwawA Offline
                                  artwawA Offline
                                  artwaw
                                  wrote on last edited by
                                  #19

                                  @drich I think that is because you have not had supplied a valid rectangle area which tells QPainter::drawText() where to draw. Please refer to the documentation I linked above to learn how to draw on widgets. It would be more helpful and consistent than explaining every detail in here.

                                  For more information please re-read.

                                  Kind Regards,
                                  Artur

                                  1 Reply Last reply
                                  0
                                  • artwawA artwaw

                                    @drich That means that you passed too few arguments to the method. Please refer to the documentation I linked in one of my previous posts - in that webpage together with a quite detailed overview on how to use QPainter there is also a list of the methods provided. You will see that QPainter::drawPixmap comes in many variants with different arguments list so you can choose the one that best suits your needs.
                                    It seems to me that taking a look at Paint System would also bring you some significant benefits in terms of overall understanding how to accomplish what you aim for.

                                    D Offline
                                    D Offline
                                    drich
                                    wrote on last edited by
                                    #20

                                    @artwaw Now I understand Thank you very much! :)

                                    artwawA 1 Reply Last reply
                                    0
                                    • D drich

                                      @artwaw Now I understand Thank you very much! :)

                                      artwawA Offline
                                      artwawA Offline
                                      artwaw
                                      wrote on last edited by
                                      #21

                                      @drich My pleasure.

                                      For more information please re-read.

                                      Kind Regards,
                                      Artur

                                      1 Reply Last reply
                                      2

                                      • Login

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