Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Как задать ESC-последовательность через exec


Автор: skif18 6.2.2008, 10:51
Есть код 
Код

FileWriter f=new FileWriter("D:\\eclipse3.2.2\\workspace\\obedi\\newfile.txt");
  String sourse =pers_+"  "+Total;
  f.write(sourse);
  f.close();
  Runtime.getRuntime().exec(" PRINT D:\\eclipse3.2.2\\workspace\\obedi\\newfile.txt");


Работает по нажатию кнопки. Но... надо задать ESC - последовательность для принтера "ESC U 1". Это построчная печать. но как это сделать не знаю если можно подскажите. smile 

P.S. Надеюсь я раздел форума правильно выбрал... smile 

Автор: LSD 6.2.2008, 13:52
Попробуй unicode escape последовательностями: \u001B, или вообще перейди на печать средствами Java.

Автор: skif18 6.2.2008, 14:57
LSD, для матричных принтеров есть такие средства? подскажи какие.

Автор: serger 6.2.2008, 15:04
Код

                FileInputStream is = new FileInputStream(System.getProperty("user.dir")+"/report/"+name);

                DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
                AttributeSet aset = new HashAttributeSet();
                PrintService[] services = PrintServiceLookup.lookupPrintServices(null, aset);

                DocPrintJob job = services[0].createPrintJob();
                Doc doc = new SimpleDoc(is, flavor, null);
                job.print(doc, null);
                is.close();

1. Это чтоб не мучаться через exec
2. Про последовательности надо читать в руководствах к принтеру, хотя могу глянуть..
3. Они пишуться прямо в печатаемом тексте (прямо в потоке на принтер)

Автор: LSD 6.2.2008, 15:08
Цитата(skif18 @  6.2.2008,  14:57 Найти цитируемый пост)
для матричных принтеров есть такие средства? подскажи какие

Главное чтобы драйвер для него в системе стоял, а там уже все равно какой он матричный или лазерный.

Автор: skif18 6.2.2008, 15:29
Пробую. Спасибо за подсказки...

Автор: skif18 13.2.2008, 15:06
Получилось! Вот так.
Код

FileOutputStream fileOut = new FileOutputStream("Filename");
                            OutputStreamWriter writer = new OutputStreamWriter(fileOut, "UTF-8");
                            fileOut.write(27);
//                            fileOut.flush();
                            fileOut.write(67);
                            fileOut.write(5);
                            fileOut.flush();
                            writer.write("String for sample");
                            writer.flush();
                            writer.close();

А потом печать через exec. (Кстати 27 это Enter, 67=C, 5-колво строк на стр.) - прогон листа на 5 строк после печати. 
Пробовал на принтере EPSON FX-1000.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)