Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Advanced Developers Conference     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: Andere GUIs - Qt, GTK+, wxWidgets ::  Printer function  
Gehen Sie zu Seite 1, 2  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
baba is awesome
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.02.2010
Beiträge: 14
Beitrag baba is awesome Mitglied 09:30:56 09.02.2010   Titel:   Printer function            Zitieren

Hallo,

Ich bin im Praktikum und soll jetzt ein Programm schreiben. Dieses schiest einen Screenshot und speichert ihn. (Soweit bin ich).
Nun soll ich das auch noch ausdrucken, hier wird es für mich Knifflig da ich nicht soviel rumprobieren möchte da es ebend ein Fremder Drucker ist.
Ich habe mich auch schon via Google erkundingt und verstehe den sinn von:
printer->newPasge, printer->begin...
Jedoch habe ich nirgends etwas gefunden wo ich statt Text ein Bild Drucken kann. Kann mir wer weiter helfen?


Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
void ApplicationWindow::print()
{
const int Margin = 10;
int pageNo = 1;

if ( printer->setup(this) ) { // printer dialog
statusBar()->message( "Printing..." );
QPainter p;
if( !p.begin( printer ) ) // paint on printer
return;

p.setFont( e->font() );
int yPos = 0; // y-position for each line
QFontMetrics fm = p.fontMetrics();
QPaintDeviceMetrics metrics( printer ); // need width/height
// of printer surface
for( int i = 0 ; i < e->lines() ; i++ ) {
if ( Margin + yPos > metrics.height() - Margin ) {
QString msg( "Printing (page " );
msg += QString::number( ++pageNo );
msg += ")...";
statusBar()->message( msg );
printer->newPage(); // no more room on this page
yPos = 0; // back to top of page
}
p.drawText( Margin, Margin + yPos,
metrics.width(), fm.lineSpacing(),
ExpandTabs | DontClip,
e->text( i ) );
yPos = yPos + fm.lineSpacing();
}
p.end(); // send job to printer
statusBar()->message( "Printing completed", 2000 );
} else {
statusBar()->message( "Printing aborted", 2000 );
}
}
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
void ApplicationWindow::print()
{
const int Margin = 10;
int pageNo = 1;

if ( printer->setup(this) ) { // printer dialog
statusBar()->message( "Printing..." );
QPainter p;
if( !p.begin( printer ) ) // paint on printer
return;

p.setFont( e->font() );
int yPos = 0; // y-position for each line
QFontMetrics fm = p.fontMetrics();
QPaintDeviceMetrics metrics( printer ); // need width/height
// of printer surface
for( int i = 0 ; i < e->lines() ; i++ ) {
if ( Margin + yPos > metrics.height() - Margin ) {
QString msg( "Printing (page " );
msg += QString::number( ++pageNo );
msg += ")...";
statusBar()->message( msg );
printer->newPage(); // no more room on this page
yPos = 0; // back to top of page
}
p.drawText( Margin, Margin + yPos,
metrics.width(), fm.lineSpacing(),
ExpandTabs | DontClip,
e->text( i ) );
yPos = yPos + fm.lineSpacing();
}
p.end(); // send job to printer
statusBar()->message( "Printing completed", 2000 );
} else {
statusBar()->message( "Printing aborted", 2000 );
}
}
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
void ApplicationWindow::print()
{
const int Margin = 10;
int pageNo = 1;

if ( printer->setup(this) ) { // printer dialog
statusBar()->message( "Printing..." );
QPainter p;
if( !p.begin( printer ) ) // paint on printer
return;

p.setFont( e->font() );
int yPos = 0; // y-position for each line
QFontMetrics fm = p.fontMetrics();
QPaintDeviceMetrics metrics( printer ); // need width/height
// of printer surface
for( int i = 0 ; i < e->lines() ; i++ ) {
if ( Margin + yPos > metrics.height() - Margin ) {
QString msg( "Printing (page " );
msg += QString::number( ++pageNo );
msg += ")...";
statusBar()->message( msg );
printer->newPage(); // no more room on this page
yPos = 0; // back to top of page
}
p.drawText( Margin, Margin + yPos,
metrics.width(), fm.lineSpacing(),
ExpandTabs | DontClip,
e->text( i ) );
yPos = yPos + fm.lineSpacing();
}
p.end(); // send job to printer
statusBar()->message( "Printing completed", 2000 );
} else {
statusBar()->message( "Printing aborted", 2000 );
}
}


Mfg Marvin

_________________
Sup means Ownd !
baba is awesome
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.02.2010
Beiträge: 14
Beitrag baba is awesome Mitglied 11:18:08 09.02.2010   Titel:              Zitieren

Hat denn keiner ne Ahnung ich wie ich ein Bild drucken kann? Wenn ihr irgendwo zu noch Fragen habt könnt ihr auch die Äusern.

_________________
Sup means Ownd !
baba is awesome
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.02.2010
Beiträge: 14
Beitrag baba is awesome Mitglied 12:42:03 09.02.2010   Titel:              Zitieren

bump (Bring up my Post) :)

Ich habe das Problem das er printer ncihht mal erkennt. Weiß jemand warum nicht?
Mfg Marvin

PS: Lasse das jetzt über einen PDF Drucker laufen.

_________________
Sup means Ownd !
Athar
Mitglied

Benutzerprofil
Anmeldungsdatum: 24.12.2009
Beiträge: 827
Beitrag Athar Mitglied 12:46:23 09.02.2010   Titel:              Zitieren

Die ganzen Qs im Code lassen auf Qt schließen, näheres dürftest du also dort in der Dokumentation finden.
baba is awesome
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.02.2010
Beiträge: 14
Beitrag baba is awesome Mitglied 12:48:06 09.02.2010   Titel:              Zitieren

Wie wo was? Ich kapier den Satz nicht ?

_________________
Sup means Ownd !
nman
Moderator

Benutzerprofil
Anmeldungsdatum: 19.02.2002
Beiträge: 12896
Beitrag nman Moderator 12:50:25 09.02.2010   Titel:              Zitieren

Brems Dich gefälligst mal ein.

Nix für ungut, aber wenn Dir binnen drei Stunden noch niemand geantwortet hat, ist das noch lange kein Grund, gleich zweimal zu bumpen, insbeondere, wenn der Thread ohnehin an erster Stelle im Forum steht.

Athar meinte, dass Du QT zu verwenden scheinst, lies da mal in der Doku nach, da könnte es durchaus entsprechende Funktionen geben.

_________________
…but tuesday's just as bad.
baba is awesome
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.02.2010
Beiträge: 14
Beitrag baba is awesome Mitglied 12:52:52 09.02.2010   Titel:              Zitieren

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 :P

Ich lese in den 3 Stunden ja nix anderes als Dokus ich finnde das Thema nur sehr Kompliziert und besonders in Richtung Image gibt es keine Erläuterungen. Und zu guter letzt ist das nicht mal mein Drucker an dem ich dass Testen soll was mir noch die meisten Sorgen bereitet :(

Kannst du ncoh was zu dem Quellcode sagen?

_________________
Sup means Ownd !
nman
Moderator

Benutzerprofil
Anmeldungsdatum: 19.02.2002
Beiträge: 12896
Beitrag nman Moderator 13:04:25 09.02.2010   Titel:              Zitieren

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 :P

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.

Zitat:
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.

_________________
…but tuesday's just as bad.
C++ Forumbot
Forumbot

Benutzerprofil
Anmeldungsdatum: 29.02.2004
Beiträge: 15806
Beitrag C++ Forumbot Forumbot 13:04:43 09.02.2010   Titel:              Zitieren

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.

_________________
Besuchen Sie unsere Bücherecke.
http://www.c-plusplus.de/bucher.php
Mit jeder Bestellung unterstützen Sie das Forum.
Athar
Mitglied

Benutzerprofil
Anmeldungsdatum: 24.12.2009
Beiträge: 827
Beitrag Athar Mitglied 13:07:59 09.02.2010   Titel:              Zitieren

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.html

QPainter 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?
C/C++ Forum :: Andere GUIs - Qt, GTK+, wxWidgets ::  Printer function  
Gehen Sie zu Seite 1, 2  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.