Search in sources :

Example 6 with PrinterResolution

use of javax.print.attribute.standard.PrinterResolution in project jdk8u_jdk by JetBrains.

the class WPrinterJob method getDevModeValues.

private void getDevModeValues(PrintRequestAttributeSet aset, DevModeValues info) {
    Copies c = (Copies) aset.get(Copies.class);
    if (c != null) {
        info.dmFields |= DM_COPIES;
        info.copies = (short) c.getValue();
    }
    SheetCollate sc = (SheetCollate) aset.get(SheetCollate.class);
    if (sc != null) {
        info.dmFields |= DM_COLLATE;
        info.collate = (sc == SheetCollate.COLLATED) ? DMCOLLATE_TRUE : DMCOLLATE_FALSE;
    }
    Chromaticity ch = (Chromaticity) aset.get(Chromaticity.class);
    if (ch != null) {
        info.dmFields |= DM_COLOR;
        if (ch == Chromaticity.COLOR) {
            info.color = DMCOLOR_COLOR;
        } else {
            info.color = DMCOLOR_MONOCHROME;
        }
    }
    Sides s = (Sides) aset.get(Sides.class);
    if (s != null) {
        info.dmFields |= DM_DUPLEX;
        if (s == Sides.TWO_SIDED_LONG_EDGE) {
            info.duplex = DMDUP_VERTICAL;
        } else if (s == Sides.TWO_SIDED_SHORT_EDGE) {
            info.duplex = DMDUP_HORIZONTAL;
        } else {
            // Sides.ONE_SIDED
            info.duplex = DMDUP_SIMPLEX;
        }
    }
    OrientationRequested or = (OrientationRequested) aset.get(OrientationRequested.class);
    if (or != null) {
        info.dmFields |= DM_ORIENTATION;
        info.orient = (or == OrientationRequested.LANDSCAPE) ? DMORIENT_LANDSCAPE : DMORIENT_PORTRAIT;
    }
    Media m = (Media) aset.get(Media.class);
    if (m instanceof MediaSizeName) {
        info.dmFields |= DM_PAPERSIZE;
        MediaSizeName msn = (MediaSizeName) m;
        info.paper = (short) ((Win32PrintService) myService).findPaperID(msn);
    }
    MediaTray mt = null;
    if (m instanceof MediaTray) {
        mt = (MediaTray) m;
    }
    if (mt == null) {
        SunAlternateMedia sam = (SunAlternateMedia) aset.get(SunAlternateMedia.class);
        if (sam != null && (sam.getMedia() instanceof MediaTray)) {
            mt = (MediaTray) sam.getMedia();
        }
    }
    if (mt != null) {
        info.dmFields |= DM_DEFAULTSOURCE;
        info.bin = (short) (((Win32PrintService) myService).findTrayID(mt));
    }
    PrintQuality q = (PrintQuality) aset.get(PrintQuality.class);
    if (q != null) {
        info.dmFields |= DM_PRINTQUALITY;
        if (q == PrintQuality.DRAFT) {
            info.xres_quality = DMRES_DRAFT;
        } else if (q == PrintQuality.HIGH) {
            info.xres_quality = DMRES_HIGH;
        } else {
            info.xres_quality = DMRES_MEDIUM;
        }
    }
    PrinterResolution r = (PrinterResolution) aset.get(PrinterResolution.class);
    if (r != null) {
        info.dmFields |= DM_PRINTQUALITY | DM_YRESOLUTION;
        info.xres_quality = (short) r.getCrossFeedResolution(PrinterResolution.DPI);
        info.yres = (short) r.getFeedResolution(PrinterResolution.DPI);
    }
}
Also used : Win32PrintService(sun.print.Win32PrintService) PrinterResolution(javax.print.attribute.standard.PrinterResolution) SheetCollate(javax.print.attribute.standard.SheetCollate) MediaSizeName(javax.print.attribute.standard.MediaSizeName) Copies(javax.print.attribute.standard.Copies) PrintQuality(javax.print.attribute.standard.PrintQuality) Media(javax.print.attribute.standard.Media) SunAlternateMedia(sun.print.SunAlternateMedia) Chromaticity(javax.print.attribute.standard.Chromaticity) SunAlternateMedia(sun.print.SunAlternateMedia) Win32MediaTray(sun.print.Win32MediaTray) MediaTray(javax.print.attribute.standard.MediaTray) Sides(javax.print.attribute.standard.Sides) OrientationRequested(javax.print.attribute.standard.OrientationRequested)

Example 7 with PrinterResolution

use of javax.print.attribute.standard.PrinterResolution in project jdk8u_jdk by JetBrains.

the class WPrinterJob method setJobAttributes.

/* This method is called from native to update the values in the
     * attribute set which originates from the cross-platform dialog,
     * but updated by the native DocumentPropertiesUI which updates the
     * devmode. This syncs the devmode back in to the attributes so that
     * we can update the cross-platform dialog.
     * The attribute set here is a temporary one installed whilst this
     * happens,
     */
private final void setJobAttributes(PrintRequestAttributeSet attributes, int fields, int values, short copies, short dmPaperSize, short dmPaperWidth, short dmPaperLength, short dmDefaultSource, short xRes, short yRes) {
    if (attributes == null) {
        return;
    }
    if ((fields & DM_COPIES) != 0) {
        attributes.add(new Copies(copies));
    }
    if ((fields & DM_COLLATE) != 0) {
        if ((values & SET_COLLATED) != 0) {
            attributes.add(SheetCollate.COLLATED);
        } else {
            attributes.add(SheetCollate.UNCOLLATED);
        }
    }
    if ((fields & DM_ORIENTATION) != 0) {
        if ((values & SET_ORIENTATION) != 0) {
            attributes.add(OrientationRequested.LANDSCAPE);
        } else {
            attributes.add(OrientationRequested.PORTRAIT);
        }
    }
    if ((fields & DM_COLOR) != 0) {
        if ((values & SET_COLOR) != 0) {
            attributes.add(Chromaticity.COLOR);
        } else {
            attributes.add(Chromaticity.MONOCHROME);
        }
    }
    if ((fields & DM_PRINTQUALITY) != 0) {
        /* value < 0 indicates quality setting.
             * value > 0 indicates X resolution. In that case
             * hopefully we will also find y-resolution specified.
             * If its not, assume its the same as x-res.
             * Maybe Java code should try to reconcile this against
             * the printers claimed set of supported resolutions.
             */
        if (xRes < 0) {
            PrintQuality quality;
            if ((values & SET_RES_LOW) != 0) {
                quality = PrintQuality.DRAFT;
            } else if ((fields & SET_RES_HIGH) != 0) {
                quality = PrintQuality.HIGH;
            } else {
                quality = PrintQuality.NORMAL;
            }
            attributes.add(quality);
        } else if (xRes > 0 && yRes > 0) {
            attributes.add(new PrinterResolution(xRes, yRes, PrinterResolution.DPI));
        }
    }
    if ((fields & DM_DUPLEX) != 0) {
        Sides sides;
        if ((values & SET_DUP_VERTICAL) != 0) {
            sides = Sides.TWO_SIDED_LONG_EDGE;
        } else if ((values & SET_DUP_HORIZONTAL) != 0) {
            sides = Sides.TWO_SIDED_SHORT_EDGE;
        } else {
            sides = Sides.ONE_SIDED;
        }
        attributes.add(sides);
    }
    if ((fields & DM_PAPERSIZE) != 0) {
        addPaperSize(attributes, dmPaperSize, dmPaperWidth, dmPaperLength);
    }
    if ((fields & DM_DEFAULTSOURCE) != 0) {
        MediaTray tray = ((Win32PrintService) myService).findMediaTray(dmDefaultSource);
        attributes.add(new SunAlternateMedia(tray));
    }
}
Also used : Win32PrintService(sun.print.Win32PrintService) PrinterResolution(javax.print.attribute.standard.PrinterResolution) Copies(javax.print.attribute.standard.Copies) PrintQuality(javax.print.attribute.standard.PrintQuality) SunAlternateMedia(sun.print.SunAlternateMedia) Win32MediaTray(sun.print.Win32MediaTray) MediaTray(javax.print.attribute.standard.MediaTray) Sides(javax.print.attribute.standard.Sides)

Example 8 with PrinterResolution

use of javax.print.attribute.standard.PrinterResolution in project jdk8u_jdk by JetBrains.

the class Win32MediaSize method getPrintResolutions.

private PrinterResolution[] getPrintResolutions() {
    if (printRes == null) {
        int[] prnRes = getAllResolutions(printer, getPort());
        if (prnRes == null) {
            printRes = new PrinterResolution[0];
        } else {
            int nRes = prnRes.length / 2;
            ArrayList arrList = new ArrayList();
            PrinterResolution pr;
            for (int i = 0; i < nRes; i++) {
                try {
                    pr = new PrinterResolution(prnRes[i * 2], prnRes[i * 2 + 1], PrinterResolution.DPI);
                    arrList.add(pr);
                } catch (IllegalArgumentException e) {
                }
            }
            printRes = (PrinterResolution[]) arrList.toArray(new PrinterResolution[arrList.size()]);
        }
    }
    return printRes;
}
Also used : PrinterResolution(javax.print.attribute.standard.PrinterResolution) ArrayList(java.util.ArrayList)

Example 9 with PrinterResolution

use of javax.print.attribute.standard.PrinterResolution in project jdk8u_jdk by JetBrains.

the class Win32MediaSize method getSupportedAttributeCategories.

public Class<?>[] getSupportedAttributeCategories() {
    ArrayList categList = new ArrayList(otherAttrCats.length + 3);
    for (int i = 0; i < otherAttrCats.length; i++) {
        categList.add(otherAttrCats[i]);
    }
    int caps = getPrinterCapabilities();
    if ((caps & DEVCAP_DUPLEX) != 0) {
        categList.add(Sides.class);
    }
    if ((caps & DEVCAP_QUALITY) != 0) {
        int[] defaults = getDefaultPrinterSettings();
        // Added check: if supported, we should be able to get the default.
        if ((defaults[3] >= DMRES_HIGH) && (defaults[3] < 0)) {
            categList.add(PrintQuality.class);
        }
    }
    PrinterResolution[] supportedRes = getPrintResolutions();
    if ((supportedRes != null) && (supportedRes.length > 0)) {
        categList.add(PrinterResolution.class);
    }
    return (Class[]) categList.toArray(new Class[categList.size()]);
}
Also used : PrinterResolution(javax.print.attribute.standard.PrinterResolution) ArrayList(java.util.ArrayList)

Aggregations

PrinterResolution (javax.print.attribute.standard.PrinterResolution)9 Chromaticity (javax.print.attribute.standard.Chromaticity)4 Media (javax.print.attribute.standard.Media)4 MediaSizeName (javax.print.attribute.standard.MediaSizeName)4 OrientationRequested (javax.print.attribute.standard.OrientationRequested)4 Sides (javax.print.attribute.standard.Sides)4 URI (java.net.URI)3 Copies (javax.print.attribute.standard.Copies)3 Destination (javax.print.attribute.standard.Destination)3 MediaPrintableArea (javax.print.attribute.standard.MediaPrintableArea)3 MediaTray (javax.print.attribute.standard.MediaTray)3 PageRanges (javax.print.attribute.standard.PageRanges)3 PrintQuality (javax.print.attribute.standard.PrintQuality)3 SheetCollate (javax.print.attribute.standard.SheetCollate)3 File (java.io.File)2 URISyntaxException (java.net.URISyntaxException)2 ArrayList (java.util.ArrayList)2 Attribute (javax.print.attribute.Attribute)2 PrintServiceAttribute (javax.print.attribute.PrintServiceAttribute)2 Fidelity (javax.print.attribute.standard.Fidelity)2