Imprimiendo en Hard-Printer en Java con 300 ppp

Bien, acabo de empezar a trabajar en un programa que se supone que imprime sus gráficos. El mío es casi idéntico al de los derechos de autor en Oracle ubicado aquíhttp://docs.oracle.com/javase/tutorial/2d/printing/examples/HelloWorldPrinter.java

Básicamente, soy un noob completo y he tratado de averiguar cómo configurar mi página para que sea 8.5x11in y 300dpi pero sin éxito :( No tengo código de trabajo sobre este tema después de todos mis intentos fallidos. Sé que tiene algo para hacer conPaper.setSize() yPrinterResolution Pero no puedo recoger lo suficiente de los javadocs para entender esto. Por favor ayuda.

EDITAR: creo que descubrí quePaper.setSize(72*8.5,72*11); Establece el tamaño de la página en 8.5x11 pero el dpi sigue siendo 72. Este es mi código hasta ahora.

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;
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta