|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Этот раздел объясняет, как создать основную программу печати, которая выводит на экран диалоговое окно печати и печатает текст "Привет Мир" к выбранному принтеру.
Печать задачи обычно состоит из двух частей:
Сначала создайте задание принтера. class, представляющий задание принтера и большинство других связанных классов, располагается в java.awt.print пакет.
import java.awt.print.*; PrinterJob job = PrinterJob.getPrinterJob();
Затем обеспечьте код, который представляет контент к странице, реализовывая интерфейс.
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;
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;
}
}
Полный код для этого примера находится в
Отправка a Graphics экземпляр к принтеру является по существу тем же самым как рендерингом этого на экран. В обоих случаях Вы должны выполнить следующие шаги:
Graphics2D.Printable.print() метод вызывает система печати, так же, как Component.paint() метод вызывают, чтобы нарисовать Компонент на дисплее. Система печати вызовет Printable.print() метод для страницы 0, 1.. и т.д. до print() возвраты метода NO_SUCH_PAGE.print() метод можно вызвать с той же самой страницей, индексируют многократно, пока документ не завершается. Эта функция применяется, когда пользователь определяет, что атрибуты, такие как многократные копии с сопоставляют опцию.print() метод может быть пропущен для определенных индексов страницы, если пользователь определил различный диапазон страницы, который не включает определенную страницу, индексируют.