Генерация файла.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();
}
}
}