<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2F2D_Graphics%2FPrinterJob</id>
		<title>Java Tutorial/2D Graphics/PrinterJob - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2F2D_Graphics%2FPrinterJob"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/2D_Graphics/PrinterJob&amp;action=history"/>
		<updated>2026-04-18T20:25:23Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/2D_Graphics/PrinterJob&amp;diff=3504&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/2D_Graphics/PrinterJob&amp;diff=3504&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:26Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 17:44, 31 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/2D_Graphics/PrinterJob&amp;diff=3505&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/2D_Graphics/PrinterJob&amp;diff=3505&amp;oldid=prev"/>
				<updated>2010-05-31T15:25:15Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Print Book ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.Font;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.print.Book;&lt;br /&gt;
import java.awt.print.PageFormat;&lt;br /&gt;
import java.awt.print.Printable;&lt;br /&gt;
import java.awt.print.PrinterJob;&lt;br /&gt;
import java.util.Enumeration;&lt;br /&gt;
import java.util.Vector;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    PrinterJob pj = PrinterJob.getPrinterJob();&lt;br /&gt;
    Book book = new Book();&lt;br /&gt;
    PageFormat defaultFormat = new PageFormat();&lt;br /&gt;
    defaultFormat = pj.defaultPage(defaultFormat);&lt;br /&gt;
    PageFormat landscapeFormat = new PageFormat();&lt;br /&gt;
    landscapeFormat.setOrientation(PageFormat.LANDSCAPE);&lt;br /&gt;
    PagePrinter[] page = new PagePrinter[2];&lt;br /&gt;
    int pageWidth = (int) defaultFormat.getImageableWidth();&lt;br /&gt;
    int pageHeight = (int) defaultFormat.getImageableHeight();&lt;br /&gt;
    Font font = new Font(&amp;quot;Helvetica&amp;quot;, Font.BOLD, 18);&lt;br /&gt;
    page[0] = new PagePrinter();&lt;br /&gt;
    page[0].addPrintElement(new MyItem(&amp;quot;AAA&amp;quot;, font, 100, pageHeight / 2));&lt;br /&gt;
    page[0].addPrintElement(new MyItem(&amp;quot;line&amp;quot;, 0, pageHeight, pageWidth, pageHeight));&lt;br /&gt;
    page[1] = new PagePrinter();&lt;br /&gt;
    page[1].addPrintElement(new MyItem(&amp;quot;rectangle&amp;quot;, 100, 100, pageWidth - 200, pageHeight - 200));&lt;br /&gt;
    page[1].addPrintElement(new MyItem(&amp;quot;oval&amp;quot;, 120, 120, pageWidth - 240, pageHeight - 240));&lt;br /&gt;
    book.append(page[0], defaultFormat);&lt;br /&gt;
    book.append(page[1], landscapeFormat);&lt;br /&gt;
    &lt;br /&gt;
    pj.setPageable(book);&lt;br /&gt;
    pj.print();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class PagePrinter implements Printable {&lt;br /&gt;
  Vector pageContents;&lt;br /&gt;
  public PagePrinter() {&lt;br /&gt;
    pageContents = new Vector();&lt;br /&gt;
  }&lt;br /&gt;
  public int print(Graphics g, PageFormat pageFormat, int pageIndex) {&lt;br /&gt;
    Enumeration printElements = pageContents.elements();&lt;br /&gt;
    while (printElements.hasMoreElements()) {&lt;br /&gt;
      MyItem pe = (MyItem) printElements.nextElement();&lt;br /&gt;
      pe.print(g);&lt;br /&gt;
    }&lt;br /&gt;
    return Printable.PAGE_EXISTS;&lt;br /&gt;
  }&lt;br /&gt;
  public void addPrintElement(MyItem pe) {&lt;br /&gt;
    pageContents.addElement(pe);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyItem {&lt;br /&gt;
  static final int TEXT = 1;&lt;br /&gt;
  static final int GRAPHICS = 2;&lt;br /&gt;
  int type;&lt;br /&gt;
  String text;&lt;br /&gt;
  Font font;&lt;br /&gt;
  String shape;&lt;br /&gt;
  int x, y, width, height;&lt;br /&gt;
  public MyItem(String text, Font font, int x, int y) {&lt;br /&gt;
    type = TEXT;&lt;br /&gt;
    this.text = text;&lt;br /&gt;
    this.font = font;&lt;br /&gt;
    this.x = x;&lt;br /&gt;
    this.y = y;&lt;br /&gt;
  }&lt;br /&gt;
  public MyItem(String shape, int x, int y, int width, int height) {&lt;br /&gt;
    type = GRAPHICS;&lt;br /&gt;
    this.shape = shape.toUpperCase();&lt;br /&gt;
    this.x = x;&lt;br /&gt;
    this.y = y;&lt;br /&gt;
    this.width = width;&lt;br /&gt;
    this.height = height;&lt;br /&gt;
  }&lt;br /&gt;
  public void print(Graphics g) {&lt;br /&gt;
    Font oldFont = g.getFont();&lt;br /&gt;
    if (type == TEXT) {&lt;br /&gt;
      g.setFont(font);&lt;br /&gt;
      g.drawString(text, x, y);&lt;br /&gt;
    } else if (type == GRAPHICS) {&lt;br /&gt;
      if (shape.equals(&amp;quot;LINE&amp;quot;)) {&lt;br /&gt;
        g.drawLine(x, y, width, height);&lt;br /&gt;
      } else if (shape.equals(&amp;quot;OVAL&amp;quot;)) {&lt;br /&gt;
        g.drawOval(x, y, width, height);&lt;br /&gt;
      } else if (shape.equals(&amp;quot;RECTANGLE&amp;quot;)) {&lt;br /&gt;
        g.drawRect(x, y, width, height);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    g.setFont(oldFont);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Printing setting ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.Font;&lt;br /&gt;
import java.awt.FontMetrics;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.Graphics2D;&lt;br /&gt;
import java.awt.GridLayout;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.awt.print.PageFormat;&lt;br /&gt;
import java.awt.print.Printable;&lt;br /&gt;
import java.awt.print.PrinterException;&lt;br /&gt;
import java.awt.print.PrinterJob;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
public class PrinterSettingUpDialogPrint extends JFrame {&lt;br /&gt;
  DrawingCanvas canvas= new DrawingCanvas();&lt;br /&gt;
  JButton setUpButton= new JButton(&amp;quot;Page Setup&amp;quot;), printButton= new JButton(&amp;quot;Print&amp;quot;), cancelButton= new JButton(&amp;quot;Cancel&amp;quot;);&lt;br /&gt;
  PrinterJob printJob = PrinterJob.getPrinterJob();&lt;br /&gt;
  PageFormat pageFormat = printJob.defaultPage();&lt;br /&gt;
  PrintableCanvas printableCanvas;&lt;br /&gt;
  public PrinterSettingUpDialogPrint() {&lt;br /&gt;
    getContentPane().add(canvas);&lt;br /&gt;
    JPanel panel = new JPanel();&lt;br /&gt;
    panel.setLayout(new GridLayout(1, 3));&lt;br /&gt;
    setUpButton.addActionListener(new ActionListener(){&lt;br /&gt;
      public void actionPerformed(ActionEvent a){&lt;br /&gt;
        setup();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    panel.add(setUpButton);&lt;br /&gt;
    printButton.addActionListener(new ActionListener(){&lt;br /&gt;
      public void actionPerformed(ActionEvent a){&lt;br /&gt;
        print();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    panel.add(printButton);&lt;br /&gt;
    cancelButton.addActionListener(new ActionListener(){&lt;br /&gt;
      public void actionPerformed(ActionEvent a){&lt;br /&gt;
        cancel();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    panel.add(cancelButton);&lt;br /&gt;
    getContentPane().add(BorderLayout.SOUTH, panel);&lt;br /&gt;
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    setSize(400, 275);&lt;br /&gt;
    setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  private void setup() {&lt;br /&gt;
    pageFormat = printJob.pageDialog(pageFormat);&lt;br /&gt;
    printJob.validatePage(pageFormat);&lt;br /&gt;
  }&lt;br /&gt;
  private void print() {&lt;br /&gt;
    printableCanvas = new PrintableCanvas(pageFormat);&lt;br /&gt;
    printJob.setPrintable(printableCanvas);&lt;br /&gt;
    boolean ok = printJob.printDialog();&lt;br /&gt;
    if (ok) {&lt;br /&gt;
      try {&lt;br /&gt;
        printJob.print();&lt;br /&gt;
      } catch (Exception pe) {&lt;br /&gt;
        System.out.println(&amp;quot;Printing Exception Occured!&amp;quot;);&lt;br /&gt;
        pe.printStackTrace();&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  private void cancel() {&lt;br /&gt;
    printJob.cancel();&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String arg[]) {&lt;br /&gt;
    new PrinterSettingUpDialogPrint();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class DrawingCanvas extends JPanel {&lt;br /&gt;
  Font font = new Font(&amp;quot;Dialog&amp;quot;, Font.BOLD, 50);&lt;br /&gt;
  FontMetrics fontMetrics;&lt;br /&gt;
  int w = 400, h = 275;&lt;br /&gt;
  DrawingCanvas() {&lt;br /&gt;
    setBackground(Color.white);&lt;br /&gt;
    setSize(400, 275);&lt;br /&gt;
    fontMetrics = getFontMetrics(font);&lt;br /&gt;
  }&lt;br /&gt;
  public void paintComponent(Graphics g) {&lt;br /&gt;
    super.paintComponent(g);&lt;br /&gt;
    Graphics2D g2D = (Graphics2D) g;&lt;br /&gt;
    paintContent(g2D, w, h);&lt;br /&gt;
  }&lt;br /&gt;
  public void paintContent(Graphics2D g2D, int w, int h) {&lt;br /&gt;
    g2D.setFont(font);&lt;br /&gt;
    g2D.drawString(&amp;quot;Java 2D&amp;quot;, (float) (0.5 * (w - fontMetrics&lt;br /&gt;
        .stringWidth(&amp;quot;Java 2D&amp;quot;))), (float) (0.5 * h - 1.25 * fontMetrics&lt;br /&gt;
        .getHeight()));&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class PrintableCanvas implements Printable {&lt;br /&gt;
  DrawingCanvas canvas;&lt;br /&gt;
  PageFormat pageFormat;&lt;br /&gt;
  public PrintableCanvas(PageFormat pf) {&lt;br /&gt;
    pageFormat = pf;&lt;br /&gt;
  }&lt;br /&gt;
  public int print(Graphics g, PageFormat pageFormat, int pageIndex)&lt;br /&gt;
      throws PrinterException {&lt;br /&gt;
    if (pageIndex &amp;gt;= 1) {&lt;br /&gt;
      return Printable.NO_SUCH_PAGE;&lt;br /&gt;
    }&lt;br /&gt;
    Graphics2D g2D = (Graphics2D) g;&lt;br /&gt;
    canvas = new DrawingCanvas();&lt;br /&gt;
    canvas.paintContent(g2D, (int) pageFormat.getImageableWidth(),&lt;br /&gt;
        (int) pageFormat.getImageableHeight());&lt;br /&gt;
    return Printable.PAGE_EXISTS;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>