Print Sample with java.awt.Graphics : PrintJob « 2D Graphics « Java Tutorial

Print Sample with java.awt.Graphics
import java.awt.Canvas;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.PrintJob;
import java.awt.Toolkit;
import java.util.Properties;

import javax.swing.JFrame;

public class PrintSampleApp extends JFrame {
  MyCanvas canvas = new MyCanvas();

  public static void main(String args[]) {
    PrintSampleApp app = new PrintSampleApp();

  public PrintSampleApp() {
    add("Center", canvas);
    setSize(500, 500);
    String name = "Test print job";
    Properties properties = new Properties();
    PrintJob pj = Toolkit.getDefaultToolkit().getPrintJob(PrintSampleApp.this, name, properties);
    if (pj != null) {

class MyCanvas extends Canvas {
  public void paint(Graphics g) {
    Dimension size = getSize();
    int width = size.width;
    int height = size.height;
    int x1 = (int) (width * 0.1);
    int x2 = (int) (width * 0.9);
    int y1 = (int) (height * 0.1);
    int y2 = (int) (height * 0.9);
    g.drawRect(x1, y1, x2 - x1, y2 - y1);
    g.drawOval(x1, y1, x2 - x1, y2 - y1);
    g.drawLine(x1, y1, x2, y2);
    g.drawLine(x2, y1, x1, y2);
    String text = "Print Me! ";
    text += text;
    text += text;
    g.drawString(text, x1, (int) ((y1 + y2) / 2));

16.49.1.Print with java.awt.PrintJob
16.49.2.Print Sample with java.awt.GraphicsPrint Sample with java.awt.Graphics
16.49.3.Print configuration
16.49.4.Listening for Print Job Attribute Changes
16.49.5.Determining When a Print Job Has Finished
16.49.6.Cancelling a Print Job
16.49.7.Getting the Default Value of a Print Job Capability
16.49.8.Getting the Possible Values for a Print Job Capability
16.49.9.Setting the Orientation of a Print Job -- Portrait or Landscape
16.49.10.demonstrate the Java 1.4 printing API
16.49.11.Setting the Number of Copies of a Print Job
16.49.12.Displaying the Page Format Dialog: changes the default page format such as orientation and paper size.
16.49.13.Print Dialog: change the default printer settings(default printer, number of copies, range of pages)
16.49.14.Setting the Orientation of a Printed Page