Guten Morgen,
ich bin gerade dabei mich mit dem drucken in Java auseinander zu setzen und möchte verschiedene Sachen auf ein A4 Blatt drucken. Das funktioniert auch alles nur gibt es ein Problem mit dem PrinterJob.Dialog();
Drucke ich jetzt mit einem Print Dialog funktioniert alles hervorragend, was das Designe und die Orientierung der Schrift usw angeht. Kommentiere ich aber nun den printDialog aus und lasse ohne diesen Drucken, dann habe ich oben und an den Seiten einen sehr dicken weißen Rand.
Setze ich meine Schrift auf die Koordinaten des Randes verschwindet diese. Woran kann das liegen das dieser Rand kommt? Hier nochmal der komplette Programm Code:
ich bin gerade dabei mich mit dem drucken in Java auseinander zu setzen und möchte verschiedene Sachen auf ein A4 Blatt drucken. Das funktioniert auch alles nur gibt es ein Problem mit dem PrinterJob.Dialog();
Java:
PrinterJob printJob = PrinterJob.getPrinterJob();
PageFormat pageFormat = printJob.defaultPage();
if(printJob.printDialog()) {
try {
printJob.print();
} catch (PrinterException e) {
e.printStackTrace();
}
}
Setze ich meine Schrift auf die Koordinaten des Randes verschwindet diese. Woran kann das liegen das dieser Rand kommt? Hier nochmal der komplette Programm Code:
Java:
public class Haupt implements Printable{
PrinterJob printJob = PrinterJob.getPrinterJob();
PageFormat pageFormat = printJob.defaultPage();
public static void main(String[] args) {
new Haupt();
}
public Haupt() {
printJob.setPrintable(this);
if(printJob.printDialog()) {
try {
printJob.print();
} catch (PrinterException e) {
e.printStackTrace();
}
}
}
Font dick = new Font("Arial", Font.BOLD, 12);
Font dunn = new Font("Arial", Font.TRUETYPE_FONT, 12);
@Override
public int print(Graphics g, PageFormat pf, int page) throws PrinterException {
if(page > 0) {
return NO_SUCH_PAGE;
}
Paper paper = new Paper();
final double widthPaper = 8.3;
final double heightPaper = 11.7;
paper.setSize(widthPaper, heightPaper);
paper.setImageableArea(0, 0, widthPaper, heightPaper);
Graphics2D g2d = (Graphics2D)g;
g2d.translate(pf.getImageableX(), pf.getImageableY());
// Deposit light
g2d.setFont(dick);
g2d.drawString("Deposit light", 10, 10);
// 497302-20000
g2d.setFont(dunn);
g2d.drawString("497302-20000", 10, 25);
// Rev. 0
g2d.drawString("Rev. 0", 50, 40);
// Barcode
InputStream ttf = this.getClass().getResourceAsStream("CODE_39C.TTF");
Font font = null;
try {
font = Font.createFont(Font.TRUETYPE_FONT, ttf);
} catch (FontFormatException | IOException ex) {
ex.printStackTrace();
}
g2d.setFont(font);
g2d.setFont(new Font(g2d.getFont().getFontName(), g2d.getFont().getStyle(), 12));
g2d.drawString("002649518/01", 10, 70);
// Zahl
g2d.setFont(dunn);
g2d.drawString("002649518/01", 10, 85);
// Made in Germany
g2d.setFont(dick);
g2d.drawString("Made in Germany", 100, 70);
try {
BufferedImage image = ImageIO.read(new File("C:\\Users\\Salzmann\\Desktop\\logok.png"));
g2d.drawImage(image, 100, 10, null);
} catch (IOException e) {
e.printStackTrace();
}
return PAGE_EXISTS;
}
}