Grafiken mit Java im richtigen Format drucken
Hallo Leute
Java verwendet beim Drucken das Raster 1/72-Inch (0,353mm). Druckt man damit eine Grafik aus, so verwendet Java dieses Raster entsprechend der Pixelauflösung der Grafik. Dadurch werden die Grafiken größer ausgedruckt, da sie meistens eine feinere Auflösung haben, z.B. 200 dpi anstelle von 72 dpi.
Kann mir jemand schreiben (eventuell mit Codezeilen), wie man dieses Problem behebt?
Gregor
Antwort schreiben
Antwort 1 von Gregor2007 vom 01.09.2019, 22:23 Options
Hallo
Eine perfekte Lösung zum Drucken von Grafiken mit unterschiedlichen DPI-Auflösungen auf einer Seite habe ich bis jetzt noch nicht gefunden, dafür aber einen brauchbaren "Work-around". Er basiert auf Andre's Link und der Skalierung von Schriften:
Alle zu druckenden Grafiken neu aufbauen (Resampling in einem Grafikprogramm), wobei am einfachsten ein ganzzahliges Vielfaches von 72 dpi gewählt wird. Ich habe 288 dpi = 4x72 dpi genommen.
In der Methode print(Graphics g, ... ):
Graphics2D g2 = (Graphics2D) g; // Cast auf Graphics2D anwenden
g2.scale(1.0/SCALE, 1.0/SCALE); // Auflösung vergrößern, bei mir ist SCALE = 4
... // Eine Grafik als BufferedImage laden
g2.drawImage(image, null, x1, y1); // Die Grafik ausdrucken
...
g2.setFont(new Font(TYPE, STYLE, SIZE*SCALE)); // Font mit skalierter Zeichengröße
g2.drawString(zeile, x2, y2); // Skalierten Text ausdrucken
Viele Grüße