Drucken auf Hard-Printer in Java mit 300dpi

Okay, also habe ich gerade angefangen, an einem Programm zu arbeiten, dessen Grafiken gedruckt werden sollen. Meins ist fast identisch mit dem urheberrechtlich geschützten bei Oracle, das sich hier befindethttp://docs.oracle.com/javase/tutorial/2d/printing/examples/HelloWorldPrinter.java

Im Grunde genommen bin ich ein absoluter Neuling und habe versucht, herauszufinden, wie ich meine Seite auf 8,5 x 11 Zoll und 300 dpi einstellen kann, aber ohne Erfolg :( Ich habe nach all meinen fehlgeschlagenen Versuchen nicht einmal Arbeitscode für dieses Thema. Ich weiß, dass es etwas hat zu tun mitPaper.setSize() undPrinterResolution Aber ich kann nicht genug von den Javadocs lernen, um diese zu verstehen. Bitte helfen Sie.

EDIT: Ich glaube, ich habe das entdecktPaper.setSize(72*8.5,72*11); Legt die Seitengröße auf 8,5 x 11 fest, aber die Auflösung beträgt immer noch 72. Dies ist mein Code.

public int print(Graphics g, PageFormat pf, int page) throws
                                PrinterException {
        Graphics2D g2d = (Graphics2D)g;
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                        RenderingHints.VALUE_ANTIALIAS_ON);
         Paper pg = new Paper();
        pg.setSize(72*8.5,72*11);
        pf.setPaper(pg);
        if (page > 0) { /* We have only one page, and 'page' is zero-based */
            return NO_SUCH_PAGE;
        }

     /* User (0,0) is typically outside the imageable area, so we must
     * translate by the X and Y values in the PageFormat to avoid clipping
     */
    //Graphics2D g2d = (Graphics2D)g;
    g2d.translate(pf.getImageableX(), pf.getImageableY());

    /* Now we perform our rendering */
    g.drawString("Hello world! :D", 100, 100);

    /* tell the caller that this page is part of the printed document */
    return PAGE_EXISTS;
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage