cupsMediaPrintables = new MediaPrintableArea[nPageSizes];
cupsMediaSNames = new MediaSizeName[nPageSizes];
cupsCustomMediaSNames = new CustomMediaSizeName[nPageSizes];
CustomMediaSizeName msn;
MediaPrintableArea mpa;
float length, width, x, y, w, h;
// initialize names and printables
for (int i=0; i<nPageSizes; i++) {
// media width and length
width = (float)(pageSizes[i*6]/PRINTER_DPI);
length = (float)(pageSizes[i*6+1]/PRINTER_DPI);
// media printable area
x = (float)(pageSizes[i*6+2]/PRINTER_DPI);
h = (float)(pageSizes[i*6+3]/PRINTER_DPI);
w = (float)(pageSizes[i*6+4]/PRINTER_DPI);
y = (float)(pageSizes[i*6+5]/PRINTER_DPI);
msn = new CustomMediaSizeName(media[i*2], media[i*2+1],
width, length);
// add to list of standard MediaSizeNames
if ((cupsMediaSNames[i] = msn.getStandardMedia()) == null) {
// add custom if no matching standard media
cupsMediaSNames[i] = msn;
// add this new custom msn to MediaSize array
if ((width > 0.0) && (length > 0.0)) {
new MediaSize(width, length,
Size2DSyntax.INCH, msn);
}
}
// add to list of custom MediaSizeName
// for internal use of IPPPrintService
cupsCustomMediaSNames[i] = msn;
mpa = null;
try {
mpa = new MediaPrintableArea(x, y, w, h,
MediaPrintableArea.INCH);
} catch (IllegalArgumentException e) {
if (width > 0 && length > 0) {
mpa = new MediaPrintableArea(0, 0, width, length,
MediaPrintableArea.INCH);
}
}
cupsMediaPrintables[i] = mpa;
}