Search in sources :

Example 1 with PrinterResolution

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

the class WPrinterJob method setResolutionDPI.

/* Printer Resolution. See also getXRes() and getYRes() */
private final void setResolutionDPI(int xres, int yres) {
    if (attributes != null) {
        PrinterResolution res = new PrinterResolution(xres, yres, PrinterResolution.DPI);
        attributes.add(res);
    }
    mAttXRes = xres;
    mAttYRes = yres;
}
Also used : PrinterResolution(javax.print.attribute.standard.PrinterResolution)

Example 2 with PrinterResolution

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

the class WPrinterJob method setResolutionAttrib.

private void setResolutionAttrib(Attribute attr) {
    PrinterResolution pr = (PrinterResolution) attr;
    mAttXRes = pr.getCrossFeedResolution(PrinterResolution.DPI);
    mAttYRes = pr.getFeedResolution(PrinterResolution.DPI);
}
Also used : PrinterResolution(javax.print.attribute.standard.PrinterResolution)

Example 3 with PrinterResolution

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

the class Win32MediaSize method getDefaultAttributeValue.

public Object getDefaultAttributeValue(Class<? extends Attribute> category) {
    if (category == null) {
        throw new NullPointerException("null category");
    }
    if (!Attribute.class.isAssignableFrom(category)) {
        throw new IllegalArgumentException(category + " is not an Attribute");
    }
    if (!isAttributeCategorySupported(category)) {
        return null;
    }
    int[] defaults = getDefaultPrinterSettings();
    // indices must match those in WPrinterJob.cpp
    int defPaper = defaults[0];
    int defYRes = defaults[2];
    int defQuality = defaults[3];
    int defCopies = defaults[4];
    int defOrient = defaults[5];
    int defSides = defaults[6];
    int defCollate = defaults[7];
    int defColor = defaults[8];
    if (category == Copies.class) {
        if (defCopies > 0) {
            return new Copies(defCopies);
        } else {
            return new Copies(1);
        }
    } else if (category == Chromaticity.class) {
        if (defColor == DMCOLOR_COLOR) {
            return Chromaticity.COLOR;
        } else {
            return Chromaticity.MONOCHROME;
        }
    } else if (category == JobName.class) {
        return new JobName("Java Printing", null);
    } else if (category == OrientationRequested.class) {
        if (defOrient == DMORIENT_LANDSCAPE) {
            return OrientationRequested.LANDSCAPE;
        } else {
            return OrientationRequested.PORTRAIT;
        }
    } else if (category == PageRanges.class) {
        return new PageRanges(1, Integer.MAX_VALUE);
    } else if (category == Media.class) {
        MediaSizeName msn = findWin32Media(defPaper);
        if (msn != null) {
            if (!isSupportedMedia(msn) && mediaSizeNames != null) {
                msn = mediaSizeNames[0];
                defPaper = findPaperID(msn);
            }
            return msn;
        } else {
            initMedia();
            if ((mediaSizeNames != null) && (mediaSizeNames.length > 0)) {
                // cannot be null but to be safe, add a check
                if ((idList != null) && (mediaSizes != null) && (idList.size() == mediaSizes.length)) {
                    Integer defIdObj = Integer.valueOf(defPaper);
                    int index = idList.indexOf(defIdObj);
                    if (index >= 0 && index < mediaSizes.length) {
                        return mediaSizes[index].getMediaSizeName();
                    }
                }
                return mediaSizeNames[0];
            }
        }
    } else if (category == MediaPrintableArea.class) {
        /* Verify defPaper */
        MediaSizeName msn = findWin32Media(defPaper);
        if (msn != null && !isSupportedMedia(msn) && mediaSizeNames != null) {
            defPaper = findPaperID(mediaSizeNames[0]);
        }
        float[] prnArea = getMediaPrintableArea(printer, defPaper);
        if (prnArea != null) {
            MediaPrintableArea printableArea = null;
            try {
                printableArea = new MediaPrintableArea(prnArea[0], prnArea[1], prnArea[2], prnArea[3], MediaPrintableArea.INCH);
            } catch (IllegalArgumentException e) {
            }
            return printableArea;
        }
        return null;
    } else if (category == SunAlternateMedia.class) {
        return null;
    } else if (category == Destination.class) {
        try {
            return new Destination((new File("out.prn")).toURI());
        } catch (SecurityException se) {
            try {
                return new Destination(new URI("file:out.prn"));
            } catch (URISyntaxException e) {
                return null;
            }
        }
    } else if (category == Sides.class) {
        switch(defSides) {
            case DMDUP_VERTICAL:
                return Sides.TWO_SIDED_LONG_EDGE;
            case DMDUP_HORIZONTAL:
                return Sides.TWO_SIDED_SHORT_EDGE;
            default:
                return Sides.ONE_SIDED;
        }
    } else if (category == PrinterResolution.class) {
        int yRes = defYRes;
        int xRes = defQuality;
        if ((xRes < 0) || (yRes < 0)) {
            int res = (yRes > xRes) ? yRes : xRes;
            if (res > 0) {
                return new PrinterResolution(res, res, PrinterResolution.DPI);
            }
        } else {
            return new PrinterResolution(xRes, yRes, PrinterResolution.DPI);
        }
    } else if (category == ColorSupported.class) {
        int caps = getPrinterCapabilities();
        if ((caps & DEVCAP_COLOR) != 0) {
            return ColorSupported.SUPPORTED;
        } else {
            return ColorSupported.NOT_SUPPORTED;
        }
    } else if (category == PrintQuality.class) {
        if ((defQuality < 0) && (defQuality >= DMRES_HIGH)) {
            switch(defQuality) {
                case DMRES_HIGH:
                    return PrintQuality.HIGH;
                case DMRES_MEDIUM:
                    return PrintQuality.NORMAL;
                default:
                    return PrintQuality.DRAFT;
            }
        }
    } else if (category == RequestingUserName.class) {
        String userName = "";
        try {
            userName = System.getProperty("user.name", "");
        } catch (SecurityException se) {
        }
        return new RequestingUserName(userName, null);
    } else if (category == SheetCollate.class) {
        if (defCollate == DMCOLLATE_TRUE) {
            return SheetCollate.COLLATED;
        } else {
            return SheetCollate.UNCOLLATED;
        }
    } else if (category == Fidelity.class) {
        return Fidelity.FIDELITY_FALSE;
    }
    return null;
}
Also used : Destination(javax.print.attribute.standard.Destination) Fidelity(javax.print.attribute.standard.Fidelity) ColorSupported(javax.print.attribute.standard.ColorSupported) PrintServiceAttribute(javax.print.attribute.PrintServiceAttribute) Attribute(javax.print.attribute.Attribute) JobName(javax.print.attribute.standard.JobName) URISyntaxException(java.net.URISyntaxException) URI(java.net.URI) OrientationRequested(javax.print.attribute.standard.OrientationRequested) MediaPrintableArea(javax.print.attribute.standard.MediaPrintableArea) PrinterResolution(javax.print.attribute.standard.PrinterResolution) Copies(javax.print.attribute.standard.Copies) Sides(javax.print.attribute.standard.Sides) PageRanges(javax.print.attribute.standard.PageRanges) MediaSizeName(javax.print.attribute.standard.MediaSizeName) Media(javax.print.attribute.standard.Media) RequestingUserName(javax.print.attribute.standard.RequestingUserName) Chromaticity(javax.print.attribute.standard.Chromaticity) File(java.io.File)

Example 4 with PrinterResolution

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

the class Win32MediaSize method getSupportedAttributeValues.

public Object getSupportedAttributeValues(Class<? extends Attribute> category, DocFlavor flavor, AttributeSet attributes) {
    if (category == null) {
        throw new NullPointerException("null category");
    }
    if (!Attribute.class.isAssignableFrom(category)) {
        throw new IllegalArgumentException(category + " does not implement Attribute");
    }
    if (flavor != null) {
        if (!isDocFlavorSupported(flavor)) {
            throw new IllegalArgumentException(flavor + " is an unsupported flavor");
        // if postscript & category is already specified within the
        //  PostScript data we return null
        } else if (isAutoSense(flavor) || (isPostScriptFlavor(flavor) && (isPSDocAttr(category)))) {
            return null;
        }
    }
    if (!isAttributeCategorySupported(category)) {
        return null;
    }
    if (category == JobName.class) {
        return new JobName("Java Printing", null);
    } else if (category == RequestingUserName.class) {
        String userName = "";
        try {
            userName = System.getProperty("user.name", "");
        } catch (SecurityException se) {
        }
        return new RequestingUserName(userName, null);
    } else if (category == ColorSupported.class) {
        int caps = getPrinterCapabilities();
        if ((caps & DEVCAP_COLOR) != 0) {
            return ColorSupported.SUPPORTED;
        } else {
            return ColorSupported.NOT_SUPPORTED;
        }
    } else if (category == Chromaticity.class) {
        if (flavor == null || flavor.equals(DocFlavor.SERVICE_FORMATTED.PAGEABLE) || flavor.equals(DocFlavor.SERVICE_FORMATTED.PRINTABLE) || flavor.equals(DocFlavor.BYTE_ARRAY.GIF) || flavor.equals(DocFlavor.INPUT_STREAM.GIF) || flavor.equals(DocFlavor.URL.GIF) || flavor.equals(DocFlavor.BYTE_ARRAY.JPEG) || flavor.equals(DocFlavor.INPUT_STREAM.JPEG) || flavor.equals(DocFlavor.URL.JPEG) || flavor.equals(DocFlavor.BYTE_ARRAY.PNG) || flavor.equals(DocFlavor.INPUT_STREAM.PNG) || flavor.equals(DocFlavor.URL.PNG)) {
            int caps = getPrinterCapabilities();
            if ((caps & DEVCAP_COLOR) == 0) {
                Chromaticity[] arr = new Chromaticity[1];
                arr[0] = Chromaticity.MONOCHROME;
                return (arr);
            } else {
                Chromaticity[] arr = new Chromaticity[2];
                arr[0] = Chromaticity.MONOCHROME;
                arr[1] = Chromaticity.COLOR;
                return (arr);
            }
        } else {
            return null;
        }
    } else if (category == Destination.class) {
        try {
            return new Destination((new File("out.prn")).toURI());
        } catch (SecurityException se) {
            try {
                return new Destination(new URI("file:out.prn"));
            } catch (URISyntaxException e) {
                return null;
            }
        }
    } else if (category == OrientationRequested.class) {
        if (flavor == null || flavor.equals(DocFlavor.SERVICE_FORMATTED.PAGEABLE) || flavor.equals(DocFlavor.SERVICE_FORMATTED.PRINTABLE) || flavor.equals(DocFlavor.INPUT_STREAM.GIF) || flavor.equals(DocFlavor.INPUT_STREAM.JPEG) || flavor.equals(DocFlavor.INPUT_STREAM.PNG) || flavor.equals(DocFlavor.BYTE_ARRAY.GIF) || flavor.equals(DocFlavor.BYTE_ARRAY.JPEG) || flavor.equals(DocFlavor.BYTE_ARRAY.PNG) || flavor.equals(DocFlavor.URL.GIF) || flavor.equals(DocFlavor.URL.JPEG) || flavor.equals(DocFlavor.URL.PNG)) {
            OrientationRequested[] arr = new OrientationRequested[3];
            arr[0] = OrientationRequested.PORTRAIT;
            arr[1] = OrientationRequested.LANDSCAPE;
            arr[2] = OrientationRequested.REVERSE_LANDSCAPE;
            return arr;
        } else {
            return null;
        }
    } else if ((category == Copies.class) || (category == CopiesSupported.class)) {
        synchronized (this) {
            if (gotCopies == false) {
                nCopies = getCopiesSupported(printer, getPort());
                gotCopies = true;
            }
        }
        return new CopiesSupported(1, nCopies);
    } else if (category == Media.class) {
        initMedia();
        int len = (mediaSizeNames == null) ? 0 : mediaSizeNames.length;
        MediaTray[] trays = getMediaTrays();
        len += (trays == null) ? 0 : trays.length;
        Media[] arr = new Media[len];
        if (mediaSizeNames != null) {
            System.arraycopy(mediaSizeNames, 0, arr, 0, mediaSizeNames.length);
        }
        if (trays != null) {
            System.arraycopy(trays, 0, arr, len - trays.length, trays.length);
        }
        return arr;
    } else if (category == MediaPrintableArea.class) {
        // if getting printable area for a specific media size
        Media mediaName = null;
        if ((attributes != null) && ((mediaName = (Media) attributes.get(Media.class)) != null)) {
            if (!(mediaName instanceof MediaSizeName)) {
                // if an instance of MediaTray, fall thru returning
                // all MediaPrintableAreas
                mediaName = null;
            }
        }
        MediaPrintableArea[] mpas = getMediaPrintables((MediaSizeName) mediaName);
        if (mpas != null) {
            MediaPrintableArea[] arr = new MediaPrintableArea[mpas.length];
            System.arraycopy(mpas, 0, arr, 0, mpas.length);
            return arr;
        } else {
            return null;
        }
    } else if (category == SunAlternateMedia.class) {
        return new SunAlternateMedia((Media) getDefaultAttributeValue(Media.class));
    } else if (category == PageRanges.class) {
        if (flavor == null || flavor.equals(DocFlavor.SERVICE_FORMATTED.PAGEABLE) || flavor.equals(DocFlavor.SERVICE_FORMATTED.PRINTABLE)) {
            PageRanges[] arr = new PageRanges[1];
            arr[0] = new PageRanges(1, Integer.MAX_VALUE);
            return arr;
        } else {
            return null;
        }
    } else if (category == PrinterResolution.class) {
        PrinterResolution[] supportedRes = getPrintResolutions();
        if (supportedRes == null) {
            return null;
        }
        PrinterResolution[] arr = new PrinterResolution[supportedRes.length];
        System.arraycopy(supportedRes, 0, arr, 0, supportedRes.length);
        return arr;
    } else if (category == Sides.class) {
        if (flavor == null || flavor.equals(DocFlavor.SERVICE_FORMATTED.PAGEABLE) || flavor.equals(DocFlavor.SERVICE_FORMATTED.PRINTABLE)) {
            Sides[] arr = new Sides[3];
            arr[0] = Sides.ONE_SIDED;
            arr[1] = Sides.TWO_SIDED_LONG_EDGE;
            arr[2] = Sides.TWO_SIDED_SHORT_EDGE;
            return arr;
        } else {
            return null;
        }
    } else if (category == PrintQuality.class) {
        PrintQuality[] arr = new PrintQuality[3];
        arr[0] = PrintQuality.DRAFT;
        arr[1] = PrintQuality.HIGH;
        arr[2] = PrintQuality.NORMAL;
        return arr;
    } else if (category == SheetCollate.class) {
        if (flavor == null || (flavor.equals(DocFlavor.SERVICE_FORMATTED.PAGEABLE) || flavor.equals(DocFlavor.SERVICE_FORMATTED.PRINTABLE))) {
            SheetCollate[] arr = new SheetCollate[2];
            arr[0] = SheetCollate.COLLATED;
            arr[1] = SheetCollate.UNCOLLATED;
            return arr;
        } else {
            return null;
        }
    } else if (category == Fidelity.class) {
        Fidelity[] arr = new Fidelity[2];
        arr[0] = Fidelity.FIDELITY_FALSE;
        arr[1] = Fidelity.FIDELITY_TRUE;
        return arr;
    } else {
        return null;
    }
}
Also used : Destination(javax.print.attribute.standard.Destination) Fidelity(javax.print.attribute.standard.Fidelity) PrintServiceAttribute(javax.print.attribute.PrintServiceAttribute) Attribute(javax.print.attribute.Attribute) PrintQuality(javax.print.attribute.standard.PrintQuality) JobName(javax.print.attribute.standard.JobName) URISyntaxException(java.net.URISyntaxException) URI(java.net.URI) OrientationRequested(javax.print.attribute.standard.OrientationRequested) MediaPrintableArea(javax.print.attribute.standard.MediaPrintableArea) PrinterResolution(javax.print.attribute.standard.PrinterResolution) Sides(javax.print.attribute.standard.Sides) PageRanges(javax.print.attribute.standard.PageRanges) MediaSizeName(javax.print.attribute.standard.MediaSizeName) Media(javax.print.attribute.standard.Media) SheetCollate(javax.print.attribute.standard.SheetCollate) RequestingUserName(javax.print.attribute.standard.RequestingUserName) CopiesSupported(javax.print.attribute.standard.CopiesSupported) Chromaticity(javax.print.attribute.standard.Chromaticity) File(java.io.File)

Example 5 with PrinterResolution

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

the class Win32MediaSize method isAttributeValueSupported.

public boolean isAttributeValueSupported(Attribute attr, DocFlavor flavor, AttributeSet attributes) {
    if (attr == null) {
        throw new NullPointerException("null attribute");
    }
    Class category = attr.getCategory();
    if (flavor != null) {
        if (!isDocFlavorSupported(flavor)) {
            throw new IllegalArgumentException(flavor + " is an unsupported flavor");
        // if postscript & category is already specified within the PostScript data
        // we return false
        } else if (isAutoSense(flavor) || (isPostScriptFlavor(flavor) && (isPSDocAttr(category)))) {
            return false;
        }
    }
    if (!isAttributeCategorySupported(category)) {
        return false;
    } else if (category == Chromaticity.class) {
        if ((flavor == null) || flavor.equals(DocFlavor.SERVICE_FORMATTED.PAGEABLE) || flavor.equals(DocFlavor.SERVICE_FORMATTED.PRINTABLE) || flavor.equals(DocFlavor.BYTE_ARRAY.GIF) || flavor.equals(DocFlavor.INPUT_STREAM.GIF) || flavor.equals(DocFlavor.URL.GIF) || flavor.equals(DocFlavor.BYTE_ARRAY.JPEG) || flavor.equals(DocFlavor.INPUT_STREAM.JPEG) || flavor.equals(DocFlavor.URL.JPEG) || flavor.equals(DocFlavor.BYTE_ARRAY.PNG) || flavor.equals(DocFlavor.INPUT_STREAM.PNG) || flavor.equals(DocFlavor.URL.PNG)) {
            int caps = getPrinterCapabilities();
            if ((caps & DEVCAP_COLOR) != 0) {
                return true;
            } else {
                return attr == Chromaticity.MONOCHROME;
            }
        } else {
            return false;
        }
    } else if (category == Copies.class) {
        return isSupportedCopies((Copies) attr);
    } else if (category == Destination.class) {
        URI uri = ((Destination) attr).getURI();
        if ("file".equals(uri.getScheme()) && !(uri.getSchemeSpecificPart().equals(""))) {
            return true;
        } else {
            return false;
        }
    } else if (category == Media.class) {
        if (attr instanceof MediaSizeName) {
            return isSupportedMedia((MediaSizeName) attr);
        }
        if (attr instanceof MediaTray) {
            return isSupportedMediaTray((MediaTray) attr);
        }
    } else if (category == MediaPrintableArea.class) {
        return isSupportedMediaPrintableArea((MediaPrintableArea) attr);
    } else if (category == SunAlternateMedia.class) {
        Media media = ((SunAlternateMedia) attr).getMedia();
        return isAttributeValueSupported(media, flavor, attributes);
    } else if (category == PageRanges.class || category == SheetCollate.class || category == Sides.class) {
        if (flavor != null && !(flavor.equals(DocFlavor.SERVICE_FORMATTED.PAGEABLE) || flavor.equals(DocFlavor.SERVICE_FORMATTED.PRINTABLE))) {
            return false;
        }
    } else if (category == PrinterResolution.class) {
        if (attr instanceof PrinterResolution) {
            return isSupportedResolution((PrinterResolution) attr);
        }
    } else if (category == OrientationRequested.class) {
        if (attr == OrientationRequested.REVERSE_PORTRAIT || (flavor != null) && !(flavor.equals(DocFlavor.SERVICE_FORMATTED.PAGEABLE) || flavor.equals(DocFlavor.SERVICE_FORMATTED.PRINTABLE) || flavor.equals(DocFlavor.INPUT_STREAM.GIF) || flavor.equals(DocFlavor.INPUT_STREAM.JPEG) || flavor.equals(DocFlavor.INPUT_STREAM.PNG) || flavor.equals(DocFlavor.BYTE_ARRAY.GIF) || flavor.equals(DocFlavor.BYTE_ARRAY.JPEG) || flavor.equals(DocFlavor.BYTE_ARRAY.PNG) || flavor.equals(DocFlavor.URL.GIF) || flavor.equals(DocFlavor.URL.JPEG) || flavor.equals(DocFlavor.URL.PNG))) {
            return false;
        }
    } else if (category == ColorSupported.class) {
        int caps = getPrinterCapabilities();
        boolean isColorSup = ((caps & DEVCAP_COLOR) != 0);
        if ((!isColorSup && (attr == ColorSupported.SUPPORTED)) || (isColorSup && (attr == ColorSupported.NOT_SUPPORTED))) {
            return false;
        }
    }
    return true;
}
Also used : Destination(javax.print.attribute.standard.Destination) PageRanges(javax.print.attribute.standard.PageRanges) MediaSizeName(javax.print.attribute.standard.MediaSizeName) Media(javax.print.attribute.standard.Media) URI(java.net.URI) OrientationRequested(javax.print.attribute.standard.OrientationRequested) MediaPrintableArea(javax.print.attribute.standard.MediaPrintableArea) PrinterResolution(javax.print.attribute.standard.PrinterResolution) SheetCollate(javax.print.attribute.standard.SheetCollate) Chromaticity(javax.print.attribute.standard.Chromaticity) MediaTray(javax.print.attribute.standard.MediaTray)

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