Instead of thinking in terms of pixels, you think in terms of units. When using the print API, you must set your mind to work with units because all the classes work in the user space. The Java printing system has evolved considerably in its last two releases. This 2D API allows whatever is drawn on the screen to be rendered on paper. Although more advanced now, the printing API still only supports the printer currently selected by the user at any given time.
Available printers can either be local or networked.
The printing model changed completely in Java 1.2. In previous versions of Java, the rendering process was not optimized at all. In Java 1.1 for example, printing a simple page required a great deal of memory and was very slow. Java 1.2 streamlined and optimized the rendering process. This redesigned API is based on a callback model, in which the printing subsystem, not your program, controls when a page is rendered.