Generar factura en un .TXT es posible?

Hola un saludo a tod@s .. sera que alguien me podria ayudar a como elaborar una factura tipo supermercado.. e imprimirla en una ticketera epson.. se me ha hecho muy dificil conseguir inf sobre este tema .. he escuchado que haciendo la factura en un txt es mas factible..pero necesito la opinion de ustedes

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Nada especial

Que tal, te comento que no hay nada de especial en generar un archivo que se pueda imprimir en una impresora de tickets. Puedes generar un PDF con las dimensiones del papel soportado por el dispositivo. Al final de cuentas generas un archivo imprimible y ya.

Imagen de Nopalin

Si te soy sincero yo he

Si te soy sincero yo he descubierto que es mas fácil usar block de notas para imprimir texto, como el requerido en un para un ticket, ya que la impresión desde java envia solo imagenes nunca texto plano, o a menos que yo este mal informado y si haya una manera, la cual desgraciadamente no encontré. Tu puedes enviar a imprimir texto en java, pero este lo convierte a una imagen y es lo que manda, lo descubrí cuando quize utilizar una impresora Zebra mandandole un xml con su lenguaje y nunca funciono.

Lo que hize en su lugar fue crear el archivo de texto y guardarlo y ejecutar el comando notepado el cual tiene la opción de imprimir el archivo que se le indique. Lo unico malo de esto es que se muestra muy rapidamente la terminal de comandos.

String LS = System.getProperty("line.separator");

StringBuilder sb = new StringBuilder();
sb.append("Texto a Imprimir");
sb.append(LS);//brincamos una linea
sb.append("Segunda linea");

File file = null;
try {
        file = File.createTempFile("print", ".xml");
        FileUtils.writeStringToFile(file, sb.toString());
} catch (IOException e) {
        e.printStackTrace();
        throw new RuntimeException(e);
}

String[] command = new String[]{"notepad", "/p", file.getAbsolutePath()};
                       
Runtime runtime = Runtime.getRuntime();
Process process = null;
try {
        process = runtime.exec(command);
} catch (IOException e) {
        e.printStackTrace();
        throw new RuntimeException("Falla al imprimir el bloque");
}
                       
try {
        process.waitFor();
} catch (InterruptedException e) {
        e.printStackTrace();
}

Ya que el block de notas es un programa que viene con windows siempre y se encuentra en el PATH, no hay necesidad de indicar su ruta completa, automaticamente se localiza al ejecutarlo.

Saludos