Printer function
-
baba is awesome schrieb:
Ja ebend weil er so weit oben ist ist es ja egal wenn ich Bumpe
Also imo von mir aus lass ich es in Zukunft
Tu das. Anderen Leuten auf die Nerven zu gehen, ist kein guter Weg, um Antworten zu bekommen, nur ein guter Weg, um ignoriert und/oder angepöbelt zu werden.
Kannst du ncoh was zu dem Quellcode sagen?
Nein, da mich GUI-Programmierung überhaupt nicht interessiert und ich daher auch keine Ahnung davon habe. Ich verschiebe Dich mal ins entsprechende Subforum.
Eine genauere Beschreibung davon, was Du gemacht hast und was dabei der Fehler war, täte übrigens nicht weh.
-
Dieser Thread wurde von Moderator/in nman aus dem Forum Linux/Unix in das Forum Andere GUIs - Qt, GTK+, wxWidgets verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Ich weiß nicht wirklich, wo das Problem ist.
Wird hier alles erklärt, erster Googletreffer zu "qt printing":
http://doc.trolltech.com/4.2/printing.htmlQPainter bietet alle möglichen Funktionen, um irgendetwas zusammenzuzeichnen, darunter drawImage... ein weiterer Klick auf QImage offenbart, dass die Klasse interessante Funktionen wie load hat und sogar einen Konstruktor, der einen Dateinamen erwartet... was der wohl macht?
-
Athar ich liebe Provokante menschen
Auf der Seite war ich auch als ersten aber das "verdammte" draw.Image muss ich übersehenhaben. Ich versuche damit noch einmal Danke :).
Und auch wenn es nman wohl ncihtmehr liest lass ich die bumps;)
-
QPrinter printer(QPrinter::HighResolution); QPrintDialog *dialog = new QPrintDialog(&printer, this); dialog->setWindowTitle(tr("Print Document")); if (dialog->exec() != QDialog::Accepted) return; QPainter painter; painter.begin(&printer); int lastPage=1,numberOfPages=1; for (int page = 1; page < numberOfPages; ++page) { QRectF target(10.0, 20.0, 80.0, 60.0); QRectF source(0.0, 0.0, 70.0, 40.0); QImage image(lastfilename); painter.drawImage(target, image, source); if (page != lastPage) printer.newPage(); } painter.end();
Okay das ist nun meine Funktion die es schafft ein PDF zu erstellen allerdings füllt sie es nicht
Kann mir hier nocheinmal jemand unter die Arme greifen ?
-
int lastPage=1, numberOfPages=1; for (int page = 1; page < numberOfPages; ++page) {
Na, was glaubst du passiert da? Richtig, gar nix...
Du hast 3 Variablen, schau dir das mal GENAU an, sollte klar sein wo der Fehler ist.
-
Eig dürfte der Fehler an dem Punkt nicht liegen weil es genau macht was ich möchte
Und ja ich habe es extra nochmal überprüft. Er läuft genau einmal durch. Habe schon überlegt for zu löschen weil mir die Statischen Werte reichen. Da ich nur eine einzelnde Bilddatei drucken mag.
Mfg Baba
-
Das kann gar nicht laufen, da 1 nicht kleiner als 1 ist.
-
Habe ich mir auch gedacht. Aber es läuft nunmal. Und mit page=0 läuft es doppelt von daher...
-
Du musst irgendwo Mist gebaut haben. Diese for-Schleife kann so nicht funktionieren. 1 ist einfach nicht kleiner als 1. Falls Du per Debugger da durch gehst, verstehst Du wohl nicht richtig, was der macht.
Lass Dir mal innerhalb der Schleife irgendwas ausgeben, dann siehst Du, dass da nicht durchgegangen wird.
-
Mhh wir haben den Fehler. Dieser wird behoben und dann meld ich mich noch einmal
-
Okay neuer Lagebericht
Wir haben das problem jetzt eliminiert und ich den Code vereinfacht. Allerdings fehlt mir ein entscheidener Punkt und zwar muss ich wohl die stelle übersehen haben an der ich den Befehl zum Drucker übergebe. Aber als ich in anderen Funktionen, die funktionieren sollten, ist mir aufgefallen das mir nix auffällt -.-
QPrinter printer(QPrinter::HighResolution); //Initialisierung des Printers QPrintDialog *dialog = new QPrintDialog(&printer, this); //Aufruf des Printdialogs zum setzen einiger Informationen dialog->setWindowTitle(tr("Print Document"));//Namensänderung eig useless :) if (dialog->exec() != QDialog::Accepted) //Abbruch Button return; //Abbruch Bedingung in dem fall Beendigung der Funktion QPainter painter; // Der "Zeichner" der das Bild für den Drucker malt painter.begin(&printer); //Anfang QRectF target(10.0, 20.0, 80.0, 60.0); QRectF source(0.0, 0.0, 70.0, 40.0); QImage image(lastfilename); painter.drawImage(target, image, source); //Setzen der größe der Seite des Bildes und die Information der Bilddatei painter.end(); //ende
So habe jetzt auch einmal Comments angefügt um zu zeigen das ich mich damit auseinander gesetzt habe. Trotzdem kommeich nicht weiter.
Nun gut ich hoffe auf Antwort und google solange weiter.
Mfg marvin#
/edit
Hier habe ich noch etwas gefunden
1. QTextDocument* document = textEdit->document(); 2. QPrinter printer; 3. 4. QPrintDialog* dialog = new QPrintDialog(&printer, this); 5. if (dialog->exec() == QDialog::Accepted) 6. { 7. document->print(&printer); 8. }
wäre diese funktion nicht sogar besser für mein Problem? Wenn ja kann ich die denn auch auf ein Bild umlenken?
/Edit2 Okay es muss an painter->draw,Imager liegen. Sind vielleicht die angegebenen Maße nicht okay? Kann mich mit denen irngedwie nicht richtig auseinander setzen...
/edit 3 mhh er findet den Drucker nicht... Meint ihr das liegt eher an den Treibern oder Quelltex, weil eig kann ich hierüber Drucken...
/edit 4 Fehlermeldung:
lp: The printer or class was not found.
-
Okay auf anderen Rechnern läuft es. Damit ist das hier geschlossen.