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. [Solved] Difference between Qt4.8 and Qt5.0 when print pdf
Forum Updated to NodeBB v4.3 + New Features

[Solved] Difference between Qt4.8 and Qt5.0 when print pdf

Scheduled Pinned Locked Moved General and Desktop
9 Posts 3 Posters 7.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.
  • S Offline
    S Offline
    SergioDanielG
    wrote on last edited by
    #1

    Hi, I had a little code in Qt4.8 used to make a pdf file with barcodes and to print in cards (like credit cards).
    When my pc died, I installed Qt5.0, adding printsupport and other few modification not related with QPrinter o QPainter.
    No problem to compile or run in Qt5, but the file output it's diferent, (see the picture), making an invalid barcode.

    Well, can somebody tell me why the output differ between Qt4.8 and Qt5?
    Thanks in advance.

    The code:
    @mm = 11.8;
    QPrinter printer;
    QStringList path = QStandardPaths::standardLocations(QStandardPaths::DocumentsLocation);
    QString home = QFileInfo(path.at(0)).absoluteFilePath();

    QDateTime fecha;
    QString tarjFile = tr("tarjetas_%1.pdf").arg(fecha.currentMSecsSinceEpoch());
    QString outputPdf = tr("%1/%2").arg(home).arg(tarjFile);

    printer.setOutputFileName(outputPdf);
    printer.setOutputFormat(QPrinter::PdfFormat);
    printer.setPaperSize(QSize(85.6, 54), QPrinter::Millimeter);
    printer.setResolution(300);
    printer.setColorMode(QPrinter::Color);
    printer.setPageMargins(0.0, 0.0, 0.0, 0.0, QPrinter::Millimeter);
    printer.setFontEmbeddingEnabled(true);

    QPainter painter;
    painter.begin(&printer);
    QFont fontC("3 of 9 Barcode", 16);

    tarjeta = ("1234567890123456");
    painter.drawText(QRect(0, 5mm, 85.6mm, 5*mm), Qt::AlignHCenter, tarjeta);
    painter.end();
    @

    The picture:
    !https://imageshack.us/scaled/medium/854/13050023.png(barcode3of9)!

    www.ftatv.com.ar El foro argentino de la TV libre

    1 Reply Last reply
    0
    • C Offline
      C Offline
      ChrisW67
      wrote on last edited by
      #2

      This font: http://www.dafont.com/3of9-barcode.font
      This code:
      @
      #include <QApplication>
      #include <QFontDatabase>
      #include <QPrinter>
      #include <QPainter>

      int main(int argc, char **argv)
      {
      QApplication app(argc, argv);

      QFontDatabase::addApplicationFont("3OF9_NEW.TTF");
      
      const int mm = 11.8;
      QPrinter printer;
       
      printer.setOutputFileName("test.pdf");
      printer.setOutputFormat(QPrinter::PdfFormat);
      printer.setPaperSize(QSize(85.6, 54), QPrinter::Millimeter);
      printer.setResolution(300);
      printer.setColorMode(QPrinter::Color);
      printer.setPageMargins(0.0, 0.0, 0.0, 0.0, QPrinter::Millimeter);
      printer.setFontEmbeddingEnabled(true);
       
      QPainter painter;
      painter.begin(&printer);
      QFont fontC("3 of 9 Barcode", 16);
      painter.setFont(fontC);
       
      painter.drawText(QRect(0,  5*mm, 85.6*mm, 5*mm), Qt::AlignHCenter, "0123456789012345");
      painter.end();
      
      return 0;
      

      }
      @
      This result with Qt 4.8.4 (top) and Qt 5.0.1 (bottom) on Linux:
      !http://img547.imageshack.us/img547/9773/7nsaj.png(Barcodes)!

      Differences are fairly subtle.

      1 Reply Last reply
      0
      • S Offline
        S Offline
        SergioDanielG
        wrote on last edited by
        #3

        Thanks for reply.
        I can't see your picture, but I tried with several fonts, using directly from windows's (xp) fonts and adding with QFontDatabase::addApplicationFont(). Same result.
        Recently, I try print barcode using LibreOffice on windows and it works (when I say "it works", is: the bardcode reader can read it and decode)
        This is the barcode on LibreOffice
        !https://imageshack.us/a/img199/7908/3of9libreoffice.png(barcode on LibreOffice)!
        Well, like the problem it's at pdf generation in Qt, but why? or where?
        Thanks again.

        www.ftatv.com.ar El foro argentino de la TV libre

        1 Reply Last reply
        0
        • T Offline
          T Offline
          tobias.hunger
          wrote on last edited by
          #4

          Have you tried to "file a bug report":https://bugreports.qt-project.org/ ? Adding a minimum working example like the one you gave here helps a lot:)

          Bugreports do end up at the desk of the people that work on the relevant sub-system. They have to stumble over the issue by accident here in the forums.

          1 Reply Last reply
          0
          • S Offline
            S Offline
            SergioDanielG
            wrote on last edited by
            #5

            Hi Tobias. Thanks for your reply.
            Well, not really, before send a bug report I try always deplete all option to find a solution. (I'm not acquainted with bug report too) But, I'll try to report this as a bug.
            Thanks again.

            www.ftatv.com.ar El foro argentino de la TV libre

            1 Reply Last reply
            0
            • C Offline
              C Offline
              ChrisW67
              wrote on last edited by
              #6

              I've uploaded the original image to another host. Maybe you can see it now.

              Here is a Windows XP version of the same (4.8.0 top, 5.0.1 bottom):
              !http://img401.imageshack.us/img401/761/testpages.png(On Win XP)!

              So the problem is Windows (or XP) specific.

              1 Reply Last reply
              0
              • S Offline
                S Offline
                SergioDanielG
                wrote on last edited by
                #7

                Yes, I can see it now, and effectively, it's like a problem in windows and Qt5. Lines in the barcode are wider than in Qt4.8.
                As Tobias recommended, I did a bug report, now let's wait..
                Thanks.

                www.ftatv.com.ar El foro argentino de la TV libre

                1 Reply Last reply
                0
                • C Offline
                  C Offline
                  ChrisW67
                  wrote on last edited by
                  #8

                  I did wonder it if is some curious text anti-aliasing glitch

                  1 Reply Last reply
                  0
                  • S Offline
                    S Offline
                    SergioDanielG
                    wrote on last edited by
                    #9

                    Hi all.
                    The problem was fixed with: "https://codereview.qt-project.org/#change,60448":https://codereview.qt-project.org/#change,60448.
                    Tested with Qt 5.1.1 MinGW 32bit.
                    Regards.

                    www.ftatv.com.ar El foro argentino de la TV libre

                    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