示例#1
0
  private static void init() {
    String[] instructions = {
      "To be able to run this test it is required to have a default",
      "printer configured in your user environment.",
      "If no default printer exists, then test passes.",
      " ",
      "There will be 2 print dialogs.  The first dialog should show",
      "portrait as the selected orientation.  The 2nd dialog should show",
      "landscape as the selected orientation.",
      " ",
      "Visual inspection of the printed pages is needed. A passing",
      "test will print 2 pages in portrait and 2 pages in landscape.",
      "The pages have on the center of the page the text \"Center\"",
      "2 rectangles will appear above and below it, the one below is",
      "filled."
    };
    Sysout.createDialog();
    Sysout.printInstructions(instructions);

    PrintJob job = null;
    Dimension dim = null;
    JobAttributes jobAttributes = new JobAttributes();
    PageAttributes pageAttributes = new PageAttributes();
    String center = "Center";
    Font font = new Font("SansSerif", Font.PLAIN, 200);
    FontMetrics metrics = null;
    int width = 0;
    Graphics g = null;

    jobAttributes.setDialog(DialogType.NATIVE);
    pageAttributes.setOrigin(OriginType.PRINTABLE);
    pageAttributes.setPrinterResolution(new int[] {1200, 1200, 3});
    pageAttributes.setOrientationRequested(OrientationRequestedType.PORTRAIT);
    jobAttributes.setSides(SidesType.TWO_SIDED_LONG_EDGE);

    job = f.getToolkit().getPrintJob(f, "Portrait Test", jobAttributes, pageAttributes);
    if (job != null) {
      dim = job.getPageDimension();
      for (int i = 0; i < 2; i++) {
        g = job.getGraphics();

        g.drawLine(0, 0, dim.width, 0);
        g.drawLine(dim.width, 0, dim.width, dim.height);
        g.drawLine(dim.width, dim.height, 0, dim.height);
        g.drawLine(0, dim.height, 0, 0);

        g.drawRect(dim.width / 2 - 200, dim.height / 3 - 300, 400, 600);
        g.fillRect(dim.width / 2 - 200, 2 * dim.height / 3 - 300, 400, 600);

        g.setFont(font);
        metrics = g.getFontMetrics();
        width = metrics.stringWidth(center);
        g.setColor(Color.black);
        g.drawString(center, (dim.width / 2) - (width / 2), dim.height / 2);

        g.dispose();
      }
      job.end();
      job = null;
    }

    pageAttributes.setOrientationRequested(OrientationRequestedType.LANDSCAPE);

    job = f.getToolkit().getPrintJob(f, "Landscape Test", jobAttributes, pageAttributes);
    if (job != null) {
      dim = job.getPageDimension();
      for (int i = 0; i < 2; i++) {
        g = job.getGraphics();
        g.drawLine(0, 0, dim.width, 0);
        g.drawLine(dim.width, 0, dim.width, dim.height);
        g.drawLine(dim.width, dim.height, 0, dim.height);
        g.drawLine(0, dim.height, 0, 0);

        g.drawRect(dim.width / 2 - 200, dim.height / 3 - 300, 400, 600);
        g.fillRect(dim.width / 2 - 200, 2 * dim.height / 3 - 300, 400, 600);

        g.setFont(font);
        metrics = g.getFontMetrics();
        width = metrics.stringWidth(center);
        g.setColor(Color.black);
        g.drawString(center, (dim.width / 2) - (width / 2), dim.height / 2);

        g.dispose();
      }
      job.end();
      job = null;
    }
    System.out.println("done");
  }