Здравей,
Не зная дали правилно те разбирам, но ето какво бих направил аз:
FileInputStream in = new FileInputStream("toprint.txt");
DocFlavor format = DocFlavor.INPUT_STREAM.AUTOSENSE;
Doc doc = new SimpleDoc(in, format, null);
PrintRequestAttributeSet attribs = new HashPrintRequestAttributeSet();
PrintService[] services = PrintServiceLookup.lookupPrintServices(format, attribs);
if (services.length == 0) throw new Exception("No suitable printer found!");
DocPrintJob printJob = services[0].createPrintJob();
printJob.print(doc, attribs);
Този код взема съдържанието на toprint.txt, който си е plain-text и го праща на първия принтер който докопа (мрежови, локален и т.н.). Ако искаш по-прецизен контрол, даже можеш потока да си го обърнеш в ByteArrayInputStream и да си му предаваш байт по байт. Като цяло, ако целиш на определен принтер да печаташ, можеш да му дадеш малко настройки по атрибутите за търсене. Примерно:
attribs.add(MediaSizeName.ISO_A4);
attribs.add(Sides.DUPLEX);
и т.н.
Можеш да смениш и формата на DocFlavor-а на TEXT_PLAIN_UTF8, TEXT_PLAIN_US_ASCII и т.н.
Това го драснах за няколко минути - нищо не гарантирам. Принципно, при мен работи
Поздрави,
Николай Манчев