Drucken mit QT3
Juergen Sachs <[email protected]>
| Newsgroups | gmane.linux.suse.programming |
|---|---|
| Message-ID | <[email protected]> |
Hallo,
ich ärgere mich im Moment mit dem "Design" von einem Ausdruck herrum.
Mein Problem hierbei ist, das die Ergebnisse, je nach Rechner und Drucker
Unterschiedlich sind.
Mein Problem ist, das ich in ein existierendes Formular Drucken muß. Der
Ausdruck muß also in vorgefertigte Felder passen.
Den Ausdruck Initialisiere ich mit:
-----
if ( printer->setup(0) ) // Nur wenn Drucker ausgewählt
{
//printer->setPrintProgram(fsconfig->getProgrammName());
printer->setFullPage(TRUE);
QPainter p;
if( !p.begin( printer ) ) // paint on printer
return FALSE; // ging wohl schief
QFont font = QApplication::font();
font.setPointSizeFloat(9.35); //10,00 , 10,20 , 10.25);
p.setFont( font ); //@todo einen festen font zum drucken setzen
QFontMetrics fm = p.fontMetrics();
QPaintDeviceMetrics metrics( printer ); // need width/height
p.drawText( Margin + (td->getX() * fm.width('u')), Margin +
(fm.lineSpacing() * td->getY()), metrics.width(), fm.lineSpacing(),
Qt::ExpandTabs | Qt::DontClip, getFieldText(td->getType()) );
.................... snipp ......................
-----
Nun sollte ja der Ausdruck immer gleich groß sein. Er kann sich zwar leicht
verschieben durch die Druckränder, was aber keine Rolle spielen würde.
Auf einem Rechner passt das auch perfekt.
Das Problem ist, das der Ausdruck an einem zweiten Rechner über 2,5 cm höher
war und nicht mehr in die Felder passte.
So wie ich das gelesen habe, ist doch die Punktgröße, die mit
setPointSizeFloat() gesetzt wird konstant groß. Sollte also unabhängig vom
Drucker und Rechner sein. Oder muß ich die Größe eines Punktes erst noch
ausrechnen ?
Im Prinzip brauche ich "Schreibmaschienen Schrift" von der größe her.
Kann mir einer sagen was ich falsch mache ?!
Beide Rechner haben Suse 9.3.
Danke Juergen
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
[email protected]
Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken
Sie eine Mail an: [email protected]