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