Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. German
  4. Protokoll als DIN A4 ausdrucken. Druckproblem. Wer kann helfen?
Forum Updated to NodeBB v4.3 + New Features

Protokoll als DIN A4 ausdrucken. Druckproblem. Wer kann helfen?

Scheduled Pinned Locked Moved Unsolved German
8 Posts 2 Posters 2.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.
  • D Offline
    D Offline
    derfighter
    wrote on last edited by koahnig
    #1

    Hallo zusammen,
    ich habe mich eben in diesem Forum angemeldet in der Hoffnung hier Hilfe zu bekommen. Um meine Arbeit zu erleichtern habe ich mir von einem Kumpel ein Programm in Qt Programmieren lassen. Jetzt sind wir allerdings soweit das wir bei einem Druckproblem stehen geblieben sind wo er selbst beim besten willen einfach nicht weiter kommt. Ich brauche eure Hilfe dazu? Wer kann helfen?

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    
    void MainWindow::on_pushButton_clicked()
    {
        QString fileName = QFileDialog::getOpenFileName(this, "Öffnen", "", "PDF (*.pdf)");
        qDebug() << fileName;
        QUrl viewer = QUrl::fromLocalFile(QFileInfo("pdfjs/web/viewer.html").absoluteFilePath());
        this->ui->webView->load(viewer.url() + "?file=../../"+fileName.split("/").last()+"");
    }
    
    void MainWindow::on_pushButton_2_clicked()
    {
        QPrinter printer(QPrinter::HighResolution);
        printer.setFullPage(true);
        //printer.setOrientation(QPrinter::Portrait);
        printer.setPaperSize(QPrinter::A4);
    
        QPrintDialog* pd = new QPrintDialog(&printer, this);
        if(pd->exec() == QDialog::Accepted) {
            //this->ui->webView->page()->mainFrame()->evaluateJavaScript("window.print();");
            this->ui->webView->print(&printer);
        }
    }
    

    link text

    Ok was seht ihr? Auf der linken Seite ist ein Protokoll aufgeführt. Nach einem doppelklick wird das Protokoll auf der rechten Seite angezeigt. Beim drucken erscheint das Protokoll als DIN A5. Genau hier liegt das Problem, das protokoll wird komprimiert.

    Ich würde mich und Lösungsvorschläge sehr freuen.

    Maurice

    [edit:koahnig] Korrektur der Code Tags

    K 1 Reply Last reply
    0
    • D derfighter

      Hallo zusammen,
      ich habe mich eben in diesem Forum angemeldet in der Hoffnung hier Hilfe zu bekommen. Um meine Arbeit zu erleichtern habe ich mir von einem Kumpel ein Programm in Qt Programmieren lassen. Jetzt sind wir allerdings soweit das wir bei einem Druckproblem stehen geblieben sind wo er selbst beim besten willen einfach nicht weiter kommt. Ich brauche eure Hilfe dazu? Wer kann helfen?

      #include "mainwindow.h"
      #include "ui_mainwindow.h"
      
      MainWindow::MainWindow(QWidget *parent) :
          QMainWindow(parent),
          ui(new Ui::MainWindow)
      {
          ui->setupUi(this);
      }
      
      MainWindow::~MainWindow()
      {
          delete ui;
      }
      
      void MainWindow::on_pushButton_clicked()
      {
          QString fileName = QFileDialog::getOpenFileName(this, "Öffnen", "", "PDF (*.pdf)");
          qDebug() << fileName;
          QUrl viewer = QUrl::fromLocalFile(QFileInfo("pdfjs/web/viewer.html").absoluteFilePath());
          this->ui->webView->load(viewer.url() + "?file=../../"+fileName.split("/").last()+"");
      }
      
      void MainWindow::on_pushButton_2_clicked()
      {
          QPrinter printer(QPrinter::HighResolution);
          printer.setFullPage(true);
          //printer.setOrientation(QPrinter::Portrait);
          printer.setPaperSize(QPrinter::A4);
      
          QPrintDialog* pd = new QPrintDialog(&printer, this);
          if(pd->exec() == QDialog::Accepted) {
              //this->ui->webView->page()->mainFrame()->evaluateJavaScript("window.print();");
              this->ui->webView->print(&printer);
          }
      }
      

      link text

      Ok was seht ihr? Auf der linken Seite ist ein Protokoll aufgeführt. Nach einem doppelklick wird das Protokoll auf der rechten Seite angezeigt. Beim drucken erscheint das Protokoll als DIN A5. Genau hier liegt das Problem, das protokoll wird komprimiert.

      Ich würde mich und Lösungsvorschläge sehr freuen.

      Maurice

      [edit:koahnig] Korrektur der Code Tags

      K Offline
      K Offline
      koahnig
      wrote on last edited by
      #2

      @derfighter

      Hallo und willkommen beim devnet-Forum

      Ad hoc sehe ich hier nicht ein Problem bei Qt. In der Regel sind die hier verwendeten Dialoge "native", d.h. die jeweiligen Dialoge des Betriebssystems. Qt wird nur als vereinfachte Zwischenplattform verwendet und setzt die notwendigen Parameter im "Native"-Dialog. Daher vereinfacht Qt in diesem Zusammenhang im Wesentlichen die Handhabung über verschiedene Plattformen und Betriebssysteme. Dies gilt im Besonderen für Windows. Man kann den "Native"-Mode umgehen, aber dies scheint hier nicht der Fall zu sein.

      Welches Betriebssystem wird hier verwendet?

      Da ein PDF verwendet wird, scheint eher die Grösse dort schon gesetzt zu sein. Ein PDF kann aber auch mit jedem anderen Programm, vorzugsweise einem PDF-Reader gedruckt werden. PDF-Reader stellen auch oft einen Druckertreiber zur Verfügung, welcher eventuell die Probleme versucht.

      Kannst du das PDF auf einem anderen Drucker ohne besondere Parameter auf DIN A4 ausdrucken?

      Vote the answer(s) that helped you to solve your issue(s)

      D 1 Reply Last reply
      0
      • K koahnig

        @derfighter

        Hallo und willkommen beim devnet-Forum

        Ad hoc sehe ich hier nicht ein Problem bei Qt. In der Regel sind die hier verwendeten Dialoge "native", d.h. die jeweiligen Dialoge des Betriebssystems. Qt wird nur als vereinfachte Zwischenplattform verwendet und setzt die notwendigen Parameter im "Native"-Dialog. Daher vereinfacht Qt in diesem Zusammenhang im Wesentlichen die Handhabung über verschiedene Plattformen und Betriebssysteme. Dies gilt im Besonderen für Windows. Man kann den "Native"-Mode umgehen, aber dies scheint hier nicht der Fall zu sein.

        Welches Betriebssystem wird hier verwendet?

        Da ein PDF verwendet wird, scheint eher die Grösse dort schon gesetzt zu sein. Ein PDF kann aber auch mit jedem anderen Programm, vorzugsweise einem PDF-Reader gedruckt werden. PDF-Reader stellen auch oft einen Druckertreiber zur Verfügung, welcher eventuell die Probleme versucht.

        Kannst du das PDF auf einem anderen Drucker ohne besondere Parameter auf DIN A4 ausdrucken?

        D Offline
        D Offline
        derfighter
        wrote on last edited by
        #3

        @koahnig

        Hallo und herzlichen Dank für deine ausführliche Antwort.
        Ich selbst bin kein Programmierer und habe davon absolut keine Ahnung. Anfangs meines Studiums, lang ist es her, gab es mal ein Tutorium für C++. Aufgrund der schnell des Tutors kam ich da überhaupt nicht mit. Irgendwann habe ich es aufgegeben.

        Da ich meine Arbeit erleichtern wollte, habe ich mir irgendwann ein freiwilligen Programmierer gesucht der mir ein Programm nach meiner Vorstellung bastelt.

        Zur Problematik:
        Wenn ich eine Prüfung ausführe muss ich anschliessend ein Protokoll erstellen. Das erstellt Programm gibt mir die Plattform dafür.

        Option 1:
        Wenn ich auf eine Zeile gehe dann erscheinen alle Daten aus der Zeile in der Vorlage. Die Vorlage liegt im Hintergrund als HTML. Wenn ich jetzt auf speichern gehe dann wandelt er das ganze in ein DIN A4 PDF um welches ich im Programm ganz normal ausdrucken kann. Als ausdruck in DIN A4 funktioniert ohne Probleme.

        Option 2:
        Damit ich aber weis welches Protokoll ich ausgedruckt habe wurde die Bildschirmfläche in 2 hälften geteilt.
        Auf der linken Seite sieht man die Zeile des Protokolls und auf der rechten Seite kommt es zur Darstellung.
        So viel ich weis wird in beiden ein PDF verwendet. Wenn ich das Protokoll aus dem Programm heraus ausdrucken möchte dann kommt es als komprimiertes DIN A5 Protokoll aus dem Drucker heraus.

        Auf die frage, ob das auch bei anderen Drucker der Fall ist, ja. Ich habe das Programm auch auf der Arbeit getestet.

        Ich habe hier mal ein Bild hinzugefügt zur besseren Vorstellung.
        https://picload.org/view/ddoogdrl/druckproblem.jpg.html

        Ich würde es dir auch gerne via Teamviewer demonstrieren wenn du magst.

        Welches Betriebssystem: WIN 10.

        Kann ich dir irgendwie die ganze zip Datei zu kommen lassen die der Kumpel gemacht hat?

        Danke für deine Hilfe und alle anderen auch.

        Maurice

        K 1 Reply Last reply
        0
        • D derfighter

          @koahnig

          Hallo und herzlichen Dank für deine ausführliche Antwort.
          Ich selbst bin kein Programmierer und habe davon absolut keine Ahnung. Anfangs meines Studiums, lang ist es her, gab es mal ein Tutorium für C++. Aufgrund der schnell des Tutors kam ich da überhaupt nicht mit. Irgendwann habe ich es aufgegeben.

          Da ich meine Arbeit erleichtern wollte, habe ich mir irgendwann ein freiwilligen Programmierer gesucht der mir ein Programm nach meiner Vorstellung bastelt.

          Zur Problematik:
          Wenn ich eine Prüfung ausführe muss ich anschliessend ein Protokoll erstellen. Das erstellt Programm gibt mir die Plattform dafür.

          Option 1:
          Wenn ich auf eine Zeile gehe dann erscheinen alle Daten aus der Zeile in der Vorlage. Die Vorlage liegt im Hintergrund als HTML. Wenn ich jetzt auf speichern gehe dann wandelt er das ganze in ein DIN A4 PDF um welches ich im Programm ganz normal ausdrucken kann. Als ausdruck in DIN A4 funktioniert ohne Probleme.

          Option 2:
          Damit ich aber weis welches Protokoll ich ausgedruckt habe wurde die Bildschirmfläche in 2 hälften geteilt.
          Auf der linken Seite sieht man die Zeile des Protokolls und auf der rechten Seite kommt es zur Darstellung.
          So viel ich weis wird in beiden ein PDF verwendet. Wenn ich das Protokoll aus dem Programm heraus ausdrucken möchte dann kommt es als komprimiertes DIN A5 Protokoll aus dem Drucker heraus.

          Auf die frage, ob das auch bei anderen Drucker der Fall ist, ja. Ich habe das Programm auch auf der Arbeit getestet.

          Ich habe hier mal ein Bild hinzugefügt zur besseren Vorstellung.
          https://picload.org/view/ddoogdrl/druckproblem.jpg.html

          Ich würde es dir auch gerne via Teamviewer demonstrieren wenn du magst.

          Welches Betriebssystem: WIN 10.

          Kann ich dir irgendwie die ganze zip Datei zu kommen lassen die der Kumpel gemacht hat?

          Danke für deine Hilfe und alle anderen auch.

          Maurice

          K Offline
          K Offline
          koahnig
          wrote on last edited by
          #4

          @derfighter

          Ich habe mir deinen Code von oben nochmals genauer angeschaut. Wie schon angenommen wird das Dokument wohl über einen externen Treiber ausgedruckt oder wenigstens geladen.

           QUrl viewer = QUrl::fromLocalFile(QFileInfo("pdfjs/web/viewer.html").absoluteFilePath());
           this->ui->webView->load(viewer.url() + "?file=../../"+fileName.split("/").last()+"");
          

          und dann gedruckt mit

          this->ui->webView->print(&printer);
          

          Persönlich erwarte ich, dass da ein Parameter an den Viewer zum korrekten Setzen der Seitegrösse fehlt. Die QPrinter device wird ordentlich auf DIN A4 gesetzt, aber das muss und hat aus meiner Sicht wahrscheinlich auch keinen Einfluss auf den Viewer.

          Salopp gesagt, teilt der Viewer wahrscheinlich mit: "Ich habe DIN A5 zu drucken.". QPrinter denkt sich: "Fein, ich habe DIN A4 gesetzt und alles passt. Raus damit." QPrinter scheint keine Reskalierungsoption anzubieten. Jedenfalls habe ich keine auf die Schnelle gefunden. Falls ich QPrinter in einem Programm überhaupt einsetze, dann höchstens im Default Mode. Damit bin ich am Ende der Fahnenstange angelangt.

          Mit Webview habe ich keine Erfahrung und auch mit dem verwendeten pdfjs nicht. Da gibt es aber schon Optionen zu setzen, habe aber keinen blassen Dunst, wie das funktionieren soll.

          Vote the answer(s) that helped you to solve your issue(s)

          D 2 Replies Last reply
          0
          • K koahnig

            @derfighter

            Ich habe mir deinen Code von oben nochmals genauer angeschaut. Wie schon angenommen wird das Dokument wohl über einen externen Treiber ausgedruckt oder wenigstens geladen.

             QUrl viewer = QUrl::fromLocalFile(QFileInfo("pdfjs/web/viewer.html").absoluteFilePath());
             this->ui->webView->load(viewer.url() + "?file=../../"+fileName.split("/").last()+"");
            

            und dann gedruckt mit

            this->ui->webView->print(&printer);
            

            Persönlich erwarte ich, dass da ein Parameter an den Viewer zum korrekten Setzen der Seitegrösse fehlt. Die QPrinter device wird ordentlich auf DIN A4 gesetzt, aber das muss und hat aus meiner Sicht wahrscheinlich auch keinen Einfluss auf den Viewer.

            Salopp gesagt, teilt der Viewer wahrscheinlich mit: "Ich habe DIN A5 zu drucken.". QPrinter denkt sich: "Fein, ich habe DIN A4 gesetzt und alles passt. Raus damit." QPrinter scheint keine Reskalierungsoption anzubieten. Jedenfalls habe ich keine auf die Schnelle gefunden. Falls ich QPrinter in einem Programm überhaupt einsetze, dann höchstens im Default Mode. Damit bin ich am Ende der Fahnenstange angelangt.

            Mit Webview habe ich keine Erfahrung und auch mit dem verwendeten pdfjs nicht. Da gibt es aber schon Optionen zu setzen, habe aber keinen blassen Dunst, wie das funktionieren soll.

            D Offline
            D Offline
            derfighter
            wrote on last edited by
            #5

            @koahnig

            vielen vielen herzlich Dank für deine schnelle Antwort. Ich gebe das an meinem Kumpel weiter der sich deine Antwort zu brust nimmt. Mein Kumpel der das Programm geschrieben hat, hat aktuell Probleme mit seinem Modem. Sobald es wieder funktioniert, wird er wie ich denke sich auch hier melden.

            Wenn deine Vorstellung klappt oder es negative ausfällt schreibe ich es aufjedenfall hier rein.

            Besten Dank
            Maurice

            PS: Wenn du magst demonstriere ich dir das auch nochmal via Teamviewer.

            1 Reply Last reply
            0
            • K koahnig

              @derfighter

              Ich habe mir deinen Code von oben nochmals genauer angeschaut. Wie schon angenommen wird das Dokument wohl über einen externen Treiber ausgedruckt oder wenigstens geladen.

               QUrl viewer = QUrl::fromLocalFile(QFileInfo("pdfjs/web/viewer.html").absoluteFilePath());
               this->ui->webView->load(viewer.url() + "?file=../../"+fileName.split("/").last()+"");
              

              und dann gedruckt mit

              this->ui->webView->print(&printer);
              

              Persönlich erwarte ich, dass da ein Parameter an den Viewer zum korrekten Setzen der Seitegrösse fehlt. Die QPrinter device wird ordentlich auf DIN A4 gesetzt, aber das muss und hat aus meiner Sicht wahrscheinlich auch keinen Einfluss auf den Viewer.

              Salopp gesagt, teilt der Viewer wahrscheinlich mit: "Ich habe DIN A5 zu drucken.". QPrinter denkt sich: "Fein, ich habe DIN A4 gesetzt und alles passt. Raus damit." QPrinter scheint keine Reskalierungsoption anzubieten. Jedenfalls habe ich keine auf die Schnelle gefunden. Falls ich QPrinter in einem Programm überhaupt einsetze, dann höchstens im Default Mode. Damit bin ich am Ende der Fahnenstange angelangt.

              Mit Webview habe ich keine Erfahrung und auch mit dem verwendeten pdfjs nicht. Da gibt es aber schon Optionen zu setzen, habe aber keinen blassen Dunst, wie das funktionieren soll.

              D Offline
              D Offline
              derfighter
              wrote on last edited by
              #6

              @koahnig So, die Lösung für das Problem wurde gefunden. Mit dem Adobe Reader und der richtigen Zuordnung geht jetzt auch das drucken so wie ich es gerne haben möchte.

              Das pdf.js wurde meines wissen ganz weg gelassen.

              K 1 Reply Last reply
              0
              • D derfighter

                @koahnig So, die Lösung für das Problem wurde gefunden. Mit dem Adobe Reader und der richtigen Zuordnung geht jetzt auch das drucken so wie ich es gerne haben möchte.

                Das pdf.js wurde meines wissen ganz weg gelassen.

                K Offline
                K Offline
                koahnig
                wrote on last edited by
                #7

                @derfighter

                Schön, dass dein Problem gelöst wurde.

                Für pdf gibt es einen Haufen freie SW, aber auch oft einen Haken.

                Vote the answer(s) that helped you to solve your issue(s)

                D 1 Reply Last reply
                0
                • K koahnig

                  @derfighter

                  Schön, dass dein Problem gelöst wurde.

                  Für pdf gibt es einen Haufen freie SW, aber auch oft einen Haken.

                  D Offline
                  D Offline
                  derfighter
                  wrote on last edited by
                  #8

                  @koahnig das war mir wichtig das es gelöst wurde. Ich weis wie schwer es ist sich in einen Fehler hineinzudenken und dann eine Lösung zu finden. Sorry das ich meinen Fehler nicht besser erklären konnte. Ich kann einen PC auseinander nehmen und zusammensetzen aber Programmieren geht leider bei mir überhaupt nicht.

                  Danke trotzdem für deinen Ansatz.

                  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