Wieder einmal: PNG ausdrucken

Status
Nicht offen für weitere Antworten.

Wolfgang Lenhard

Bekanntes Mitglied
Hallo, ich verwende den folgenden Code zum Drucken von PNGs (weiß leider nicht mehr genau, wo ich ihn her habe):
Code:
	public static void printPNG(File filename) {
		PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
		DocFlavor flavor = DocFlavor.INPUT_STREAM.PNG;
		PrintService printService[] = PrintServiceLookup.lookupPrintServices(
				flavor, pras);
		PrintService defaultService = PrintServiceLookup
				.lookupDefaultPrintService();
		PrintService service = ServiceUI.printDialog(null, 200, 200,
				printService, defaultService, flavor, pras);
		if (service != null) {
			DocPrintJob job = service.createPrintJob();
			FileInputStream fis;
			try {
				fis = new FileInputStream(filename);
				DocAttributeSet das = new HashDocAttributeSet();
				Doc doc = new SimpleDoc(fis, flavor, das);
				job.print(doc, pras);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

Das klappt im Prinzip. Allerdings sehen die Ausdrucke verpixelt aus, so als würde eine Grafik ohne Antialiasing gezeichnet werden. Gibt es eine Möglichkeit, die Qualität zu verbessern. Die Qualität der PNGs ist tadellos.

Viele Grüße,
Wolfgang
 

slawaweis

Bekanntes Mitglied
das liegt an den DPI. Java druckt standardmäßig mit 72 DPI, was für Bilder aus dem Drucker viel zu wenig ist. Ich habe vor einiger Zeit das mal gemacht. Man muss zuerst die gewünschte DPI-Auflösung setzen und dann mit einem Graphics2D Objekt die Grafik auf die gewünscht Größe skalieren. Ich habe mich damals an dem Beispiel orientiert:

Print in Java 6 : Print2D Graphics GUIJava

Slawa
 

slawaweis

Bekanntes Mitglied
Ah, ok. Gibt es eine Möglichkeit zu erkennen, welche Auflösung ein Bild hat, um diese dann direkt mitzugeben?
so einfach geht es nicht. Die Auflösung eines Bildes ist seine Pixelanzahl. Doch ein Bild kann man unterschiedlich groß Drücken, das bedeutet das DPI. Dots per Inch steht für: "wie viele Punkte (also Pixel) man per Inch (2,54 cm) drücken kann/will". Bei 72 DPI werden 72x72 Pixel auf 2,54cm² gedrückt, bei 300 DPI 300x300 Pixel auf 2,54cm². Wenn es bei einem Drücker heißt, er kann maximal 600x1200 DPI ausgeben, dann kann der in der horizontalen 600 Pixel pro Inch drücken und in der vertikale 1200 Pixel pro Inch. Das wären jetzt grob geschätzt 5000x14000 Punkte auf dem A4 Paper.

Slawa
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T RegEx, wieder einmal ... :-( Allgemeine Java-Themen 19
Oneixee5 Oracle, wieder mal ... Allgemeine Java-Themen 12
E Objekte in einen String packen und wieder laden Allgemeine Java-Themen 5
LimDul Kam eine java.net.URL zu einer HashMap und ging als DNS Anfrage wieder heraus Allgemeine Java-Themen 18
W Vererbung Generics - mal wieder die verhaßte Rückwärtskompatibilität Allgemeine Java-Themen 2
V Scheinbar zufällig hin und wieder: Can't create an ImageOutputStream! Allgemeine Java-Themen 8
J Variablen Mehrere int-variablen in txt abspeichern und danach wieder auslesen Allgemeine Java-Themen 1
X NetBeans Bilder und andere Dateien ins .jar schreiben und wieder aus .jar lesen Allgemeine Java-Themen 6
2 String Array in Datei schreiben und wieder davon lesen Allgemeine Java-Themen 2
F JLabel nach 5 Sekunden wieder leeren Allgemeine Java-Themen 7
Thallius Dateien Zippen und wieder heraus lesen? Allgemeine Java-Themen 4
S Zahlen aus (String mit zahlen) immer wieder neu auslesen Allgemeine Java-Themen 5
OnDemand Input/Output Variablen in Datei Speichern um sie wieder auszulesen Allgemeine Java-Themen 4
iB0T "goto" Befehl aus Batch in Java und Variablen wert immer wieder neu setzen Allgemeine Java-Themen 4
M Regex... mal wieder Allgemeine Java-Themen 3
M CapsLock abfragen wenn Fenster wieder aktiviert wird Allgemeine Java-Themen 5
B Mal wieder "Could not find the main class" Allgemeine Java-Themen 3
C Datentypen int in bytes zerlegen und wieder zusammen setzen Allgemeine Java-Themen 13
S Strings gehen "kaputt" wenn ich in CVS ein und wieder auschecke. Allgemeine Java-Themen 2
F Wieder mal die eBay API Allgemeine Java-Themen 3
E Speicherverwaltung bzw. Speicher wieder frei geben?! Allgemeine Java-Themen 8
T JConsole: Klassen werden geladen aber nicht wieder entladen Allgemeine Java-Themen 3
S Thread vorübergehend stilllegen und wieder aufwecken Allgemeine Java-Themen 18
data89 A-Stern: fährt immer wieder vor die Wand! - Hilfeeee Allgemeine Java-Themen 7
L Thread kurz unterbrechen und wieder starten Allgemeine Java-Themen 5
L Applet immer wieder neu laden - Problem Allgemeine Java-Themen 25
S Wieso stehen in der API immer wieder abstrakte Methoden ? Allgemeine Java-Themen 7
C Aus XML ein DOM Objekt und wieder zurück Allgemeine Java-Themen 2
M wieder mal applet probleme Allgemeine Java-Themen 17
A HTML-Seite wieder schließen Allgemeine Java-Themen 2
S GUI komplett schließen und wieder Neu laden? Allgemeine Java-Themen 4
C Bild in .txt speichern und wieder als Bild speichern Allgemeine Java-Themen 2
Y Mal wieder vergleichen von Strings.[Leider noch ein Problem] Allgemeine Java-Themen 18
A String in umgekehrter reihenfolgen wieder geben Allgemeine Java-Themen 16
GilbertGrape mal wieder ne Regex-Frage Allgemeine Java-Themen 2
A Javakonsolenfenster geht gleich wieder zu Allgemeine Java-Themen 6
G Schon wieder Regex Problem :-/ Allgemeine Java-Themen 6
M Variablen Speicher wieder freigeben ? Allgemeine Java-Themen 9
L Werte in externer Datei speichern und wieder auslesen? Allgemeine Java-Themen 8
M Programm schließen und wieder neu starten Allgemeine Java-Themen 9
E Wieder mal der Classloader Allgemeine Java-Themen 6
J Nicht schießen - schon wieder OpenOffice. Allgemeine Java-Themen 4
R Immer wieder NullPointerException Allgemeine Java-Themen 2
L JVM: Speicher wieder für OS freigeben? Allgemeine Java-Themen 5
I Aus Exception wieder zurück Allgemeine Java-Themen 5
J Thread beenden und wieder starten? Allgemeine Java-Themen 20
M Array in eine Datei Schreiben und wieder auslesen Allgemeine Java-Themen 10
S Job immer wieder ausführen Allgemeine Java-Themen 4
N Mal wieder char-encoding Probleme Allgemeine Java-Themen 5
P Filechooser öffnet sich immer wieder neu Allgemeine Java-Themen 4
L Speicherplatz eies RIESEN objektes direkt wieder freigeben Allgemeine Java-Themen 5
V Irgendwie benutzt er wieder Java 1.4 Allgemeine Java-Themen 7
G Array/String aus Request wieder in Array konvertieren Allgemeine Java-Themen 2
A gemaltes wieder löschen Allgemeine Java-Themen 24
U Mal wieder DoubleBuffering Allgemeine Java-Themen 20
A Thema JAR-Erstellung (mal wieder) => etwas komplizierter Allgemeine Java-Themen 8
L schon wieder der "javac nicht gefunden" fehler Allgemeine Java-Themen 9
T Objekte eindeutig zerlegen und wieder zusammen bauen? Allgemeine Java-Themen 6
B mal wieder jar! Allgemeine Java-Themen 53
M schon wieder Comport-Problem Allgemeine Java-Themen 21
S JPanel zur Laufzeit verbergen bzw. wieder anzeigen lassen Allgemeine Java-Themen 4
C Über C/C++ (JNI) angeforderten Speicher wieder frei geben Allgemeine Java-Themen 3
M statische regex und vergleiche oder immer wieder compilen Allgemeine Java-Themen 2
R Aus InputStream wieder eine Datei erzeugen? Allgemeine Java-Themen 2
U schon wieder regex Allgemeine Java-Themen 3
M Mal wieder . Regular Expressions Allgemeine Java-Themen 2
J Mal wieder jars Allgemeine Java-Themen 2
T CMD nach aufruf von javaw Programmname wieder schließen Allgemeine Java-Themen 3
J String mit GZIPInputStream in Datei schreiben und wieder les Allgemeine Java-Themen 2
J User Klasse in den Vector, Object Klasse wieder raus... Allgemeine Java-Themen 4
D Bilder einlesen, bearbeiten und wieder in Datei schreiben Allgemeine Java-Themen 3
G Adressen in Datei speichern und wieder auslesen Allgemeine Java-Themen 3
J Thread started nur einmal Allgemeine Java-Themen 19
I if-eingaben nur einmal anzeigen Allgemeine Java-Themen 6
D Erste Schritte Arrays vergleichen und die zahlen die nur einmal vorkommen ausgeben Allgemeine Java-Themen 5
K Erste Schritte Start einer JAR Datei 2 Wege aber einmal nicht die volle Funktionlität Allgemeine Java-Themen 20
L Java Slick2D stürzt ab- Zu viel auf einmal? (LinkedList) Allgemeine Java-Themen 7
F Best Practice Application extern nur einmal startbar Allgemeine Java-Themen 3
S Eine Klasse die jeden String nur einmal annimmt Allgemeine Java-Themen 4
R Zufallszahl nur einmal Allgemeine Java-Themen 3
K Mehrere Arrays auf einmal erstellen Allgemeine Java-Themen 2
B Alle Exceptions auf einmal abfangen Allgemeine Java-Themen 4
S mit Class eine Klasse nur einmal instantiieren Allgemeine Java-Themen 4
T KeyListener lässt sich nur einmal drücken Allgemeine Java-Themen 2
C Geschachtelte For-Schleife: Äußere Schleife wird nur einmal durchlaufen!? Allgemeine Java-Themen 3
M Anwendung nur einmal starten / Zeichen in String zählen Allgemeine Java-Themen 7
C Anwendung nur einmal Starten Allgemeine Java-Themen 11
D Scrollbalken in meiner JTable auf einmal weg. Allgemeine Java-Themen 2
K Thread für SocketServer nur einmal starten Allgemeine Java-Themen 5
MQue JFrame nur einmal öffnen Allgemeine Java-Themen 3
E Hibernateanwendung auf einmal laaangsam? Allgemeine Java-Themen 3
G Mehrere Bytes auf einmal einlesen Allgemeine Java-Themen 4
B Noch einmal Kopierschutz, sorry Allgemeine Java-Themen 7
S auf einmal gibt es einen fehler. Allgemeine Java-Themen 3
K Oberserver nur einmal verwendbar? Allgemeine Java-Themen 9
A Daten in Formularen/Vorlagen erstellen und ausdrucken Allgemeine Java-Themen 3
H Excel Ausdrucken per Knopfdruck Allgemeine Java-Themen 6
G SWT Komponenten ausdrucken ? Allgemeine Java-Themen 3
C Ausdrucken einer JTable in eine Datei mit Erhalt des Formats Allgemeine Java-Themen 3
C jdic Browserinhalt ausdrucken Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben