Генерация файла.txt для печати напрямую с использованием DocPrintJob для принтера DotMatrix

Я печатаю файл.txt, используя DocPrintJob. Это отлично работает. Файл будет распечатан на матричном принтере. Теперь проблема, с которой я сталкиваюсь:

  • Согласно моему требованию, бумага должна автоматически возвращаться в перфорированное положение после печати одной записи.
  • Но при печати непосредственно из приложения бумага не возвращается автоматически в перфорированное положение.
  • Но при печати файла вручную, открыв его в блокноте, печать происходит правильно с автоматической настройкой бумаги, то есть бумага возвращается в перфорированное положение для следующей печати.

Я пытался использовать переводы строки и возврат каретки в конце каждой страницы. Но это не сработало. Есть ли выход, чтобы настроить принтер через код? Вот мой пример кода:

private static void print(String fileName) throws FileNotFoundException, PrintException {
     FileInputStream textStream;
     textStream = new FileInputStream(fileName);
     DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
     Doc mydoc = new SimpleDoc(textStream, flavor, null);   
      // Set the printer Name
     PrintService service = PrintServiceLookup.lookupDefaultPrintService();
     PrintServiceAttributeSet printServiceAttributeSet = new HashPrintServiceAttributeSet();
     printServiceAttributeSet.add(new PrinterName(service.getName(), null));
     // Set the paper size and orientation
     PrintRequestAttributeSet printRequestAttributeSet = new HashPrintRequestAttributeSet();
     printRequestAttributeSet.add(new MediaPrintableArea(0, 0, 4, 9, MediaPrintableArea.INCH));
     printRequestAttributeSet.add(OrientationRequested.LANDSCAPE);
     InputStream is = null;
     try {
          PrintRequestAttributeSet  pras = new HashPrintRequestAttributeSet();
            pras.add(new Copies(1));
         DocPrintJob job = service.createPrintJob();
         PrintJobWatcher pjw = new PrintJobWatcher(job);
         job.print(mydoc, printRequestAttributeSet);
         pjw.waitForDone();
     }catch(Exception e){
         e.printStackTrace();
     }
     finally{
        try {
            is.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
     }

 }

0 ответов

Другие вопросы по тегам