PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Image drucken



Geist
09-12-2004, 14:49
Hallo liebe Gemeinde,

ich suche eine Möglichkeit eine Rechnung zu erstellen und direkt zu drucken. Die Rechnung sieht Texte und zur besseren Übersichtlichkeit Textrahmen vor. Zudem soll oben-rechts das Firmenlogo erscheinen.

Text und Rahmen sind kein Problem, aber das Bild lässt sich einfach nicht darstellen. Wie funktioniert das, was mache ich falsch?

Hier eine auf das wesentliche gekürzte Fassung des Quellcodes, das Imageobjekt und das drawImage habe ich gekennzeichnet:


PrintJob prjob = getToolkit().getPrintJob( this, "Testseite", null );

if( null != prjob )
{
final int iScreenResol = getToolkit().getScreenResolution();
final int iPageResol = prjob.getPageResolution();
final Dimension dimScreenSize = getToolkit().getScreenSize();
final Dimension dimPageDimension = prjob.getPageDimension();

// --- BILD ERSTELLEN
Image bild;
bild = getToolkit().createImage("splash.jpg");

Graphics pg = prjob.getGraphics();
if( null != pg && 0 < iPageResol )
{
int iAddY = 20;
int iRand = (int)Math.round( iPageResol * 2. / 2.54 ); // 2 cm Rand
int iPosX = iRand + iRand/4; // Textposition
int iPosY = iPosX - iAddY/2;
int iWdth = dimPageDimension.width - iRand * 2; // innere Breite
int iMidY = dimPageDimension.height / 2;
pg.setFont( new Font( "SansSerif", Font.PLAIN, iAddY*2/3 ) );

// --- BILD AUF GRAPHICS DARSTELLEN
pg.drawImage(bild,50,100,this);

pg.drawString( "errechnete Papiergröße: "+ Math.round( 254. * dimPageDimension.width / iPageResol / 10. )
+ " x "+ Math.round( 254. * dimPageDimension.height / iPageResol / 10. ) + " mm",iPosX, iPosY+=iAddY );
pg.drawRect( iRand, iRand, iWdth, dimPageDimension.height - iRand * 2 );
pg.drawLine( iRand, iMidY + iWdth/50, dimPageDimension.width - iRand, iMidY - iWdth/50 );
pg.drawLine( iRand, iMidY - iWdth/50, dimPageDimension.width - iRand, iMidY + iWdth/50 );
iWdth -= 4;
pg.drawOval( iRand + 2, dimPageDimension.height - iRand - iWdth - 2, iWdth, iWdth );
pg.dispose();
}
prjob.end();
}



Das Programm ist (mit den entsprechenden Konstuktoren, usw.) lauffähig, nur das Bild wird nicht ausgedruckt! Woran liegt das?????

PS: das Bild liegt im gleichen Ordner wie die .class und wurde in anderen Versuchen auch einwandfrei angezeigt.