Mega Code Archive

 
Categories / Java Tutorial / 2D Graphics
 

Determining Print Job Capabilities Supported by a Print Service

import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.OutputStream; import java.lang.reflect.Array; import javax.print.DocFlavor; import javax.print.StreamPrintService; import javax.print.StreamPrintServiceFactory; import javax.print.attribute.Attribute; public class Main {   public static void main(String[] argv) throws Exception {     OutputStream fos = new BufferedOutputStream(new FileOutputStream("filename.ps"));     DocFlavor flavor = DocFlavor.INPUT_STREAM.GIF;     StreamPrintServiceFactory[] factories = StreamPrintServiceFactory         .lookupStreamPrintServiceFactories(flavor, DocFlavor.BYTE_ARRAY.POSTSCRIPT.getMimeType());     StreamPrintService service = factories[0].getPrintService(fos);     Class[] cats = service.getSupportedAttributeCategories();     for (int j = 0; j < cats.length; j++) {       Attribute attr = (Attribute) service.getDefaultAttributeValue(cats[j]);       if (attr != null) {         String attrName = attr.getName();         String attrValue = attr.toString();         Object o = service.getSupportedAttributeValues(attr.getCategory(), null, null);         if (o.getClass().isArray()) {           for (int k = 0; k < Array.getLength(o); k++) {             Object o2 = Array.get(o, k);             System.out.println(o2);           }         }       }     }   } }