Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > Java > Desktop-Applikationen und Grafik > Druckausgabe skalieren
Antwort
 
Themen-Optionen
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
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen 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.091
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  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen 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.
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen 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.091
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  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen 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
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen 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.091
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  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen 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

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

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are 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 +2. Es ist jetzt 21:28 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0) und vBSEO.

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