Spec-Zone .ru
спецификации, руководства, описания, API
След: 2-D Графика
Урок: Печать
Основная Программа Печати
Домашняя страница > 2-D Графика > Печать

Основная Программа Печати

Этот раздел объясняет, как создать основную программу печати, которая выводит на экран диалоговое окно печати и печатает текст "Привет Мир" к выбранному принтеру.

Печать задачи обычно состоит из двух частей:

Сначала создайте задание принтера. class, представляющий задание принтера и большинство других связанных классов, располагается в java.awt.print пакет.

import java.awt.print.*;

PrinterJob job = PrinterJob.getPrinterJob();

Затем обеспечьте код, который представляет контент к странице, реализовывая Printable интерфейс.

class HelloWorldPrinter
              implements Printable { ... }
...
job.setPrintable(new HelloWorldPrinter());

Приложение обычно выводит на экран диалоговое окно печати так, чтобы пользователь мог скорректировать различные варианты, такие как число копий, ориентации страницы, или целевого принтера.

boolean doPrint = job.printDialog();

Это диалоговое окно появляется, пока пользователь или не одобряет или печать отмен. doPrint переменная будет истиной, если пользователь дал команду, чтобы идти вперед и напечатать. Если doPrint переменная является ложью, пользователь, отмененный задание печати. Начиная с отображения диалогового окна вообще является дополнительным, возвращенное значение является просто информационным.

Если doPrint переменная является истиной, тогда приложение запросит, чтобы задание было напечатано, вызывая PrinterJob.print метод.

if (doPrint) {
    try {
        job.print();
    } catch (PrinterException e) {
        // The job did not successfully
        // complete
    }
}

PrinterException будет брошен, если будет проблема, отправляющая задание принтеру. Однако, начиная с PrinterJob.print метод возвращается, как только задание отправляется принтеру, пользовательское приложение не может обнаружить заедания бумаги или бумагу проблемы. Этот шаблон управления заданиями достаточен для основного использования печати.

Printable у интерфейса есть только один метод:

public int print(Graphics graphics,
           PageFormat pf, int page)
           throws PrinterException;

PageFormat class описывает ориентацию страницы (портрет или среда) и ее размер и вызывающая мысленный образ область в модулях 1/72-ого из дюйма. Вызывающая мысленный образ область учитывает граничные пределы большинства принтеров (аппаратное поле). Вызывающей мысленный образ областью является пространство в этих полях, и практически если часто далее ограничивается, чтобы оставить пространство для заголовков или нижних колонтитулов.

A page параметр является основанным на нуле номером страницы, который будет представлен.

Следующий код представляет полное Printable реализация:

import java.awt.print.*;
import java.awt.*;

public class HelloWorldPrinter
    implements Printable {

  public int print(Graphics g, PageFormat pf, int page)
      throws PrinterException {

    // We have only one page, and 'page'
    // is zero-based
    if (page > 0) {
         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!", 100, 100);

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

Полный код для этого примера находится в HelloWorldPrinter.java.

Отправка a Graphics экземпляр к принтеру является по существу тем же самым как рендерингом этого на экран. В обоих случаях Вы должны выполнить следующие шаги:


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Печать
Следующая страница: Используя Диалоговые окна Установки Печати