una ticket termica seleccionar puedo predeterminada para imprimir impresora imagen hacer desde como codigo java networking printing postscript

ticket - Impresión en Java directamente en una impresora de red Postscript



no puedo imprimir desde java (4)

No estoy seguro de que puedas hacerlo sin biblioteca adicional.

Este ejemplo muestra cómo enviar el archivo a una impresora de red, pero requiere una biblioteca de Adobe (basada en J2EE Livecycle ES comercial, por lo que no es una solución genérica "gratuita" ...).

import com.adobe.livecycle.output.client.*; import java.util.*; import java.io.File; import java.io.FileInputStream; import com.adobe.idp.Document; import com.adobe.idp.dsc.clientsdk.ServiceClientFactory; public class SendToPrinter { public static void main(String[] args) { try{ //Set LiveCycle ES service connection properties Properties ConnectionProps = new Properties(); ConnectionProps.setProperty("DSC_DEFAULT_EJB_ENDPOINT", "jnp://localhost:1099"); ConnectionProps.setProperty("DSC_TRANSPORT_PROTOCOL","EJB"); ConnectionProps.setProperty("DSC_SERVER_TYPE", "JBoss"); ConnectionProps.setProperty("DSC_CREDENTIAL_USERNAME", "administrator"); ConnectionProps.setProperty("DSC_CREDENTIAL_PASSWORD", "password"); //Create a ServiceClientFactory object ServiceClientFactory myFactory = ServiceClientFactory.createInstance(ConnectionProps); //Create an OutputClient object OutputClient outClient = new OutputClient(myFactory); //Reference XML data that represents form data FileInputStream fileInputStream = new FileInputStream("C://Adobe//Loan_data.xml"); Document inputXML = new Document(fileInputStream); //Set print run-time options PrintedOutputOptionsSpec printOptions = new PrintedOutputOptionsSpec(); printOptions.setPrinterURI("////Printer1//Printer"); printOptions.setCopies(2); //Send a PostScript print stream to printer OutputResult outputDocument = outClient.generatePrintedOutput( PrintFormat.PostScript, "Loan.xdp", "C://Adobe", "C://Adobe", printOptions, inputXML); //Write the results of the operation to OutputLog.xml Document resultData = outputDocument.getStatusDoc(); File myFile = new File("C://Adobe//OutputLog.xml"); resultData.copyToFile(myFile); } catch (Exception ee) { ee.printStackTrace(); } } }

Tengo el código / datos Postscript (?) En la memoria (en una aplicación web Java Tomcat) que me gustaría enviar directamente a una impresora PS en red. ¿Existe una manera fácil (es decir, simplemente abrir un puerto y enviar el texto) para imprimir esto, pasando por alto todos los controladores específicos de O / S y esas cosas (y con suerte ni siquiera requieren tarros adicionales)? ¿Un enlace al código de ejemplo que muestra cómo hacer esto?

Gracias, Dave


Echa un vistazo a java.awt.print. Es la API de impresión genérica en Java.

Desafortunadamente, no está orientado a lidiar con el contenido postscript que ya tienes. Está diseñado para permitirle "dibujar" en un pedazo de papel con las API gráficas Java 2d.


abra un socket TCP al puerto LPR en la impresora de destino.

envía tus datos; mientras la impresora lo comprenda, eres genial.

no olvide un Line feed cuando haya terminado.

(luego cierre el puerto)


Puede enviarlo directamente a una impresora de red en el puerto 9100. Escribí una publicación de blog sobre esto aquí:

http://frank.zinepal.com/printing-directly-to-a-network-printer

El problema es que la mayoría de las impresoras láser no son compatibles con PostScript. Por lo general, debe obtener un complemento de impresora para ello.