javax.print.attribute.standard
public class: MediaSize [javadoc |
source]
java.lang.Object
javax.print.attribute.Size2DSyntax
javax.print.attribute.standard.MediaSize
All Implemented Interfaces:
Attribute, Cloneable, java$io$Serializable
Class MediaSize is a two-dimensional size valued printing attribute class
that indicates the dimensions of the medium in a portrait orientation, with
the X dimension running along the bottom edge and the Y dimension running
along the left edge. Thus, the Y dimension must be greater than or equal to
the X dimension. Class MediaSize declares many standard media size
values, organized into nested classes for ISO, JIS, North American,
engineering, and other media.
MediaSize is not yet used to specify media. Its current role is
as a mapping for named media (see MediaSizeName ).
Clients can use the mapping method
MediaSize.getMediaSizeForName(MediaSizeName)
to find the physical dimensions of the MediaSizeName instances
enumerated in this API. This is useful for clients which need this
information to format & paginate printing.
- author:
Phil
- Race, Alan Kaminsky
Nested Class Summary: |
---|
public static final class | MediaSize.ISO | Class MediaSize.ISO includes {@link MediaSize MediaSize} values for ISO
media.
|
public static final class | MediaSize.JIS | Class MediaSize.JIS includes {@link MediaSize MediaSize} values for JIS
(Japanese) media. * |
public static final class | MediaSize.NA | Class MediaSize.NA includes {@link MediaSize MediaSize} values for North
American media. |
public static final class | MediaSize.Engineering | Class MediaSize.Engineering includes {@link MediaSize MediaSize} values
for engineering media. |
public static final class | MediaSize.Other | Class MediaSize.Other includes {@link MediaSize MediaSize} values for
miscellaneous media. |
Constructor: |
public MediaSize(float x,
float y,
int units) {
super (x, y, units);
if (x > y) {
throw new IllegalArgumentException("X dimension > Y dimension");
}
sizeVector.add(this);
}
Construct a new media size attribute from the given floating-point
values. Parameters:
x - X dimension.
y - Y dimension.
units -
Unit conversion factor, e.g. Size2DSyntax.INCH or
Size2DSyntax.MM .
Throws:
IllegalArgumentException -
(Unchecked exception) Thrown if x < 0 or y
< 0 or units < 1 or x > y .
- exception:
IllegalArgumentException -
(Unchecked exception) Thrown if x < 0 or y
< 0 or units < 1 or x > y .
|
public MediaSize(int x,
int y,
int units) {
super (x, y, units);
if (x > y) {
throw new IllegalArgumentException("X dimension > Y dimension");
}
sizeVector.add(this);
}
Construct a new media size attribute from the given integer values. Parameters:
x - X dimension.
y - Y dimension.
units -
Unit conversion factor, e.g. Size2DSyntax.INCH or
Size2DSyntax.MM .
Throws:
IllegalArgumentException -
(Unchecked exception) Thrown if x < 0 or y
< 0 or units < 1 or x > y .
- exception:
IllegalArgumentException -
(Unchecked exception) Thrown if x < 0 or y
< 0 or units < 1 or x > y .
|
public MediaSize(float x,
float y,
int units,
MediaSizeName media) {
super (x, y, units);
if (x > y) {
throw new IllegalArgumentException("X dimension > Y dimension");
}
if (media != null && mediaMap.get(media) == null) {
mediaName = media;
mediaMap.put(mediaName, this);
}
sizeVector.add(this);
}
Construct a new media size attribute from the given floating-point
values. Parameters:
x - X dimension.
y - Y dimension.
units -
Unit conversion factor, e.g. Size2DSyntax.INCH or
Size2DSyntax.MM .
media - a media name to associate with this MediaSize
Throws:
IllegalArgumentException -
(Unchecked exception) Thrown if x < 0 or y
< 0 or units < 1 or x > y .
- exception:
IllegalArgumentException -
(Unchecked exception) Thrown if x < 0 or y
< 0 or units < 1 or x > y .
|
public MediaSize(int x,
int y,
int units,
MediaSizeName media) {
super (x, y, units);
if (x > y) {
throw new IllegalArgumentException("X dimension > Y dimension");
}
if (media != null && mediaMap.get(media) == null) {
mediaName = media;
mediaMap.put(mediaName, this);
}
sizeVector.add(this);
}
Construct a new media size attribute from the given integer values. Parameters:
x - X dimension.
y - Y dimension.
units -
Unit conversion factor, e.g. Size2DSyntax.INCH or
Size2DSyntax.MM .
media - a media name to associate with this MediaSize
Throws:
IllegalArgumentException -
(Unchecked exception) Thrown if x < 0 or y
< 0 or units < 1 or x > y .
- exception:
IllegalArgumentException -
(Unchecked exception) Thrown if x < 0 or y
< 0 or units < 1 or x > y .
|
Methods from java.lang.Object: |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Method from javax.print.attribute.standard.MediaSize Detail: |
public boolean equals(Object object) {
return (super.equals(object) && object instanceof MediaSize);
}
Returns whether this media size attribute is equivalent to the passed
in object.
To be equivalent, all of the following conditions must be true:
-
object is not null.
-
object is an instance of class MediaSize.
-
This media size attribute's X dimension is equal to
object 's X dimension.
-
This media size attribute's Y dimension is equal to
object 's Y dimension.
|
public static MediaSizeName findMedia(float x,
float y,
int units) {
MediaSize match = MediaSize.ISO.A4;
if (x < = 0.0f || y < = 0.0f || units < 1) {
throw new IllegalArgumentException("args must be +ve values");
}
double ls = x * x + y * y;
double tmp_ls;
float []dim;
float diffx = x;
float diffy = y;
for (int i=0; i < sizeVector.size() ; i++) {
MediaSize mediaSize = (MediaSize)sizeVector.elementAt(i);
dim = mediaSize.getSize(units);
if (x == dim[0] && y == dim[1]) {
match = mediaSize;
break;
} else {
diffx = x - dim[0];
diffy = y - dim[1];
tmp_ls = diffx * diffx + diffy * diffy;
if (tmp_ls < ls) {
ls = tmp_ls;
match = mediaSize;
}
}
}
return match.getMediaSizeName();
}
The specified dimensions are used to locate a matching MediaSize
instance from amongst all the standard MediaSize instances.
If there is no exact match, the closest match is used.
The MediaSize is in turn used to locate the MediaSizeName object.
This method may return null if the closest matching MediaSize
has no corresponding Media instance.
This method is useful for clients which have only dimensions and
want to find a Media which corresponds to the dimensions. |
public final Class<Attribute> getCategory() {
return MediaSize.class;
}
Get the printing attribute class which is to be used as the "category"
for this printing attribute value.
For class MediaSize and any vendor-defined subclasses, the category is
class MediaSize itself. |
public static MediaSize getMediaSizeForName(MediaSizeName media) {
return (MediaSize)mediaMap.get(media);
}
Get the MediaSize for the specified named media. |
public MediaSizeName getMediaSizeName() {
return mediaName;
}
Get the media name, if any, for this size. |
public final String getName() {
return "media-size";
}
Get the name of the category of which this attribute value is an
instance.
For class MediaSize and any vendor-defined subclasses, the category
name is "media-size" . |