Author: eckardjf
Date: Sat Oct 11 11:55:10 2008 New Revision: 703709 URL: http://svn.apache.org/viewvc?rev=703709&view=rev Log: Adding support for document and print request attributes to the sendPrintFromScreen service (orientation, collate, finishings, copies, page ranges, etc.) Modified: ofbiz/trunk/applications/content/servicedef/services_output.xml ofbiz/trunk/applications/content/src/org/ofbiz/content/output/OutputServices.java Modified: ofbiz/trunk/applications/content/servicedef/services_output.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/servicedef/services_output.xml?rev=703709&r1=703708&r2=703709&view=diff ============================================================================== --- ofbiz/trunk/applications/content/servicedef/services_output.xml (original) +++ ofbiz/trunk/applications/content/servicedef/services_output.xml Sat Oct 11 11:55:10 2008 @@ -31,6 +31,8 @@ <attribute name="contentType" type="String" mode="IN" optional="true"/> <attribute name="printerContentType" type="String" mode="IN" optional="true"/> <attribute name="printerName" type="String" mode="IN" optional="true"/> + <attribute name="docAttributes" type="List" mode="IN" optional="true"/> + <attribute name="printRequestAttributes" type="List" mode="IN" optional="true"/> </service> <service name="createFileFromScreen" max-retry="0" engine="java" Modified: ofbiz/trunk/applications/content/src/org/ofbiz/content/output/OutputServices.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/src/org/ofbiz/content/output/OutputServices.java?rev=703709&r1=703708&r2=703709&view=diff ============================================================================== --- ofbiz/trunk/applications/content/src/org/ofbiz/content/output/OutputServices.java (original) +++ ofbiz/trunk/applications/content/src/org/ofbiz/content/output/OutputServices.java Sat Oct 11 11:55:10 2008 @@ -62,11 +62,15 @@ import javax.print.PrintException; import javax.print.PrintService; import javax.print.PrintServiceLookup; +import javax.print.attribute.DocAttribute; +import javax.print.attribute.DocAttributeSet; +import javax.print.attribute.HashDocAttributeSet; +import javax.print.attribute.HashPrintRequestAttributeSet; +import javax.print.attribute.HashPrintServiceAttributeSet; +import javax.print.attribute.PrintRequestAttribute; import javax.print.attribute.PrintRequestAttributeSet; import javax.print.attribute.PrintServiceAttribute; import javax.print.attribute.PrintServiceAttributeSet; -import javax.print.attribute.HashPrintRequestAttributeSet; -import javax.print.attribute.HashPrintServiceAttributeSet; import javax.print.attribute.standard.Copies; import javax.print.attribute.standard.PrinterName; import javax.print.attribute.standard.PrinterURI; @@ -141,8 +145,17 @@ // Print is sent DocFlavor psInFormat = new DocFlavor.INPUT_STREAM(printerContentType); InputStream bais = new ByteArrayInputStream(baos.toByteArray()); - - Doc myDoc = new SimpleDoc(bais, psInFormat, null); + + DocAttributeSet docAttributeSet = new HashDocAttributeSet(); + List docAttributes = (List) serviceContext.remove("docAttributes"); + if (UtilValidate.isNotEmpty(docAttributes)) { + for (Object da : docAttributes) { + Debug.logInfo("Adding DocAttribute: " + da, module); + docAttributeSet.add((DocAttribute) da); + } + } + + Doc myDoc = new SimpleDoc(bais, psInFormat, docAttributeSet); PrintServiceAttributeSet psaset = new HashPrintServiceAttributeSet(); if (UtilValidate.isNotEmpty(printerName)) { try { @@ -175,7 +188,13 @@ } if (UtilValidate.isNotEmpty(printer)) { PrintRequestAttributeSet praset = new HashPrintRequestAttributeSet(); - praset.add(new Copies(1)); + List printRequestAttributes = (List) serviceContext.remove("printRequestAttributes"); + if (UtilValidate.isNotEmpty(printRequestAttributes)) { + for (Object pra : printRequestAttributes) { + Debug.logInfo("Adding PrintRequestAttribute: " + pra, module); + praset.add((PrintRequestAttribute) pra); + } + } DocPrintJob job = printer.createPrintJob(); job.print(myDoc, praset); } else { |
Free forum by Nabble | Edit this page |