|
Java example source code file (PageFormat.java)
The PageFormat.java Java example source code/* * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ package java.awt.print; import java.awt.geom.AffineTransform; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; import java.lang.annotation.Native; /** * The <code>PageFormat class describes the size and * orientation of a page to be printed. */ public class PageFormat implements Cloneable { /* Class Constants */ /** * The origin is at the bottom left of the paper with * x running bottom to top and y running left to right. * Note that this is not the Macintosh landscape but * is the Window's and PostScript landscape. */ @Native public static final int LANDSCAPE = 0; /** * The origin is at the top left of the paper with * x running to the right and y running down the * paper. */ @Native public static final int PORTRAIT = 1; /** * The origin is at the top right of the paper with x * running top to bottom and y running right to left. * Note that this is the Macintosh landscape. */ @Native public static final int REVERSE_LANDSCAPE = 2; /* Instance Variables */ /** * A description of the physical piece of paper. */ private Paper mPaper; /** * The orientation of the current page. This will be * one of the constants: PORTRIAT, LANDSCAPE, or * REVERSE_LANDSCAPE, */ private int mOrientation = PORTRAIT; /* Constructors */ /** * Creates a default, portrait-oriented * <code>PageFormat. */ public PageFormat() { mPaper = new Paper(); } /* Instance Methods */ /** * Makes a copy of this <code>PageFormat with the same * contents as this <code>PageFormat. * @return a copy of this <code>PageFormat. */ public Object clone() { PageFormat newPage; try { newPage = (PageFormat) super.clone(); newPage.mPaper = (Paper)mPaper.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); newPage = null; // should never happen. } return newPage; } /** * Returns the width, in 1/72nds of an inch, of the page. * This method takes into account the orientation of the * page when determining the width. * @return the width of the page. */ public double getWidth() { double width; int orientation = getOrientation(); if (orientation == PORTRAIT) { width = mPaper.getWidth(); } else { width = mPaper.getHeight(); } return width; } /** * Returns the height, in 1/72nds of an inch, of the page. * This method takes into account the orientation of the * page when determining the height. * @return the height of the page. */ public double getHeight() { double height; int orientation = getOrientation(); if (orientation == PORTRAIT) { height = mPaper.getHeight(); } else { height = mPaper.getWidth(); } return height; } /** * Returns the x coordinate of the upper left point of the * imageable area of the <code>Paper object * associated with this <code>PageFormat. * This method takes into account the * orientation of the page. * @return the x coordinate of the upper left point of the * imageable area of the <code>Paper object * associated with this <code>PageFormat. */ public double getImageableX() { double x; switch (getOrientation()) { case LANDSCAPE: x = mPaper.getHeight() - (mPaper.getImageableY() + mPaper.getImageableHeight()); break; case PORTRAIT: x = mPaper.getImageableX(); break; case REVERSE_LANDSCAPE: x = mPaper.getImageableY(); break; default: /* This should never happen since it signifies that the * PageFormat is in an invalid orientation. */ throw new InternalError("unrecognized orientation"); } return x; } /** * Returns the y coordinate of the upper left point of the * imageable area of the <code>Paper object * associated with this <code>PageFormat. * This method takes into account the * orientation of the page. * @return the y coordinate of the upper left point of the * imageable area of the <code>Paper object * associated with this <code>PageFormat. */ public double getImageableY() { double y; switch (getOrientation()) { case LANDSCAPE: y = mPaper.getImageableX(); break; case PORTRAIT: y = mPaper.getImageableY(); break; case REVERSE_LANDSCAPE: y = mPaper.getWidth() - (mPaper.getImageableX() + mPaper.getImageableWidth()); break; default: /* This should never happen since it signifies that the * PageFormat is in an invalid orientation. */ throw new InternalError("unrecognized orientation"); } return y; } /** * Returns the width, in 1/72nds of an inch, of the imageable * area of the page. This method takes into account the orientation * of the page. * @return the width of the page. */ public double getImageableWidth() { double width; if (getOrientation() == PORTRAIT) { width = mPaper.getImageableWidth(); } else { width = mPaper.getImageableHeight(); } return width; } /** * Return the height, in 1/72nds of an inch, of the imageable * area of the page. This method takes into account the orientation * of the page. * @return the height of the page. */ public double getImageableHeight() { double height; if (getOrientation() == PORTRAIT) { height = mPaper.getImageableHeight(); } else { height = mPaper.getImageableWidth(); } return height; } /** * Returns a copy of the {@link Paper} object associated * with this <code>PageFormat. Changes made to the * <code>Paper object returned from this method do not * affect the <code>Paper object of this * <code>PageFormat. To update the Other Java examples (source code examples)Here is a short list of links related to this Java PageFormat.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.