Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    How to print an image and scale it to fit page?

    General and Desktop
    print image scale to fit
    3
    5
    4208
    Loading More Posts
    • 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.
    • P
      pmh4514 last edited by

      Hello,
      I use the following code to successfully print an image, but it fills the entire 8.5x11 piece of paper and is chopped off on the sides. What must I add so that it scales to fit the page?
      Thanks!

      QImage img = myPixmap.toImage(); // myPixmap previously exists
      QPrinter printer;
      QPrintDialog *dlg = new QPrintDialog(&printer,0);
      if(dlg->exec() == QDialog::Accepted) {
          QPainter painter(&printer);
          painter.drawImage(QPoint(0,0),img);
          painter.end();
      }
      
      1 Reply Last reply Reply Quote 0
      • SGaist
        SGaist Lifetime Qt Champion last edited by

        Hi,

        It's been some time but isn't it something you set in the QPrintDialog ?

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

        1 Reply Last reply Reply Quote 0
        • P
          pmh4514 last edited by

          That was my first thought too, but apparently not. (unless that's due to my own printer..)

          1 Reply Last reply Reply Quote 0
          • J
            jalomic last edited by

            @pmh4514 said:

            QPainter

            You can get paper size from printer and draw image by this function
            void QPainter::drawImage ( const QRectF & target, const QImage & image, const QRectF & source, Qt::ImageConversionFlags flags = Qt::AutoColor )

            1 Reply Last reply Reply Quote 0
            • P
              pmh4514 last edited by

              it doesn't seem to matter what rectangle values I pass to drawImage, or if it's based on the paper size or even if I try a dummy rect that is like (0,0,50,50) - the resulting print still occupies the entire 8.5x11 sheet of paper and is cutoff on the right..

              1 Reply Last reply Reply Quote 0
              • First post
                Last post