Portal > Foren > Java > Desktop-Applikationen und Grafik > Druckausgabe skalieren
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 22.11.2005, 16:20 Nach oben    #1
Buzweed
Gast
 
Beiträge: n/a
Standard Druckausgabe skalieren

Hi,

wir haben hier ein Programm geschrieben, dass die Fenstergröße von 1024x768 hat. Nun wollen wir dieses Programm mit folgendem Code drucken:

Code:
Toolkit tk = Toolkit.getDefaultToolkit();                            
            PageAttributes attributes = new PageAttributes();
            attributes.setOrientationRequested(PageAttributes.OrientationRequestedType.LANDSCAPE);                       
                           
            PrintJob pj = tk.getPrintJob(new Frame(), "",null, attributes);                            
            if ( pj != null ) { 
                               
                  Graphics g = pj.getGraphics();
                  c.printComponents( g );
                  g.dispose();
                  pj.end();
            }
Funktioniert auch wunderbar, nur ist der Ausdruck viel zu Groß und passt nicht auf 1 Seite.

Gibt es jetzt eine Möglichkeit den Ausdruck auf ne normale Seite anzupassen ?


Gruß,

Buz
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 22.11.2005, 20:59 Nach oben    #2
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.160
Standard

Ich fürchte fast, dass nicht... skalieren ginge ja noch einfach:
Statt direkt das Graphics-Objekt vom PrintJob zu verwenden nimmst du einfach ein BufferedImage (o.ä.) und dessen Graphics-Objekt wird an die Komponente übergeben.
Anschließend zeichnest du das BufferedImage via paintImage mit dem Graphics-Objekt des PrintJobs und skalierst es dabei (oder vielleicht doch besser schon vorher - Image.scaledInstance).
Wie du allerdings rausfindest, wieviele Pixel einer Din A4-Seite entsprechen, kann ich dir beim besten Willen nicht sagen.
__________________
Patrick Gotthardts Weblog.
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.11.2005, 14:26 Nach oben    #3
Buzweed
Gast
 
Beiträge: n/a
Standard

Also das mit den Pixeln ist ja kein Problem. Aber könntest du vielleicht den Code schreiben, den du meinst, da ich dort nicht wirklich durchsteige.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.11.2005, 15:53 Nach oben    #4
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.160
Standard

Code:
Toolkit tk = Toolkit.getDefaultToolkit();                            
PageAttributes attributes = new PageAttributes();
attributes.setOrientationRequested(PageAttributes.  OrientationRequestedType.LANDSCAPE);                       

PrintJob pj = tk.getPrintJob(new Frame(), "",null, attributes);                            
if ( pj != null ) {
	BufferedImage img = new BufferedImage(c.getWidth(), c.getHeight(), BufferedImage.TYPE_INT_ARGB);
	c.printComponents(img.createGraphics());

	Graphics g = pj.getGraphics();
	g.drawImage(
		img.getScaledInstance(
			DIN_A4_WIDTH, DIN_A4_HEIGHT, Image.SCALE_SMOOTH),
		0, 0, null);
	g.dispose();
	pj.end();
}
Theoretisch könnte das so funktionieren.
__________________
Patrick Gotthardts Weblog.
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.12.2005, 16:25 Nach oben    #5
Buzweed
Gast
 
Beiträge: n/a
Standard

Vielen Dank. Funktioniert sehr gut. Allerdings ist der Ausdruck etwas unscharf. Kommt das vom runterskalieren?

Gruß Buz
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.12.2005, 16:26 Nach oben    #6
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.160
Standard

Jo. Leider. Hab auch noch keine bessere Möglichkeit zum skalieren gefunden (wollte das mal für eines meiner Projekte verwenden, ist dann aber an der Qualität der Skalierung gescheitert).
__________________
Patrick Gotthardts Weblog.
pago ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Farbwerte werden beim Skalieren von Bildern verdreht suppenmann PHP-Programmierung 6 29.12.2006 13:22


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:56 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

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 38 39 40 41 42 43 44 45