Java将txt文件发送到打印机

Java将txt文件发送到打印机,java,printing,landscape,Java,Printing,Landscape,我制作了一个程序,生成文本文件(.txt),然后在文本区域中显示它们。我想更进一步,能够打印文本文件。我感觉我什么都试过了,但总是得到同样的结果。文本文件的长度总是不同的,通常超过一页。使用下面的代码,我的文本文件可以打印,但不是打印多个页面,而是将每个页面打印在横向视图中单个页面的六分之一上。我只需要正常打印。垂直于多个页面。我在Linux环境下运行,它是一台爱普生打印机。如有任何建议或反馈,将不胜感激 public static void tryDoc(){ try{

我制作了一个程序,生成文本文件(.txt),然后在文本区域中显示它们。我想更进一步,能够打印文本文件。我感觉我什么都试过了,但总是得到同样的结果。文本文件的长度总是不同的,通常超过一页。使用下面的代码,我的文本文件可以打印,但不是打印多个页面,而是将每个页面打印在横向视图中单个页面的六分之一上。我只需要正常打印。垂直于多个页面。我在Linux环境下运行,它是一台爱普生打印机。如有任何建议或反馈,将不胜感激

public static void tryDoc(){
    try{
        PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
        pras.add(OrientationRequested.PORTRAIT);
        DocFlavor flavor = DocFlavor.INPUT_STREAM.TEXT_PLAIN_UTF_8;
        PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras);
        PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService();
        PrintService service = ServiceUI.printDialog(null, 200, 200, printService, defaultService, flavor, pras);

        if(service != null){
            DocPrintJob job = service.createPrintJob();
            FileInputStream input = new FileInputStream(FileName);
            DocAttributeSet das = new HashDocAttributeSet();
            Doc doc = new SimpleDoc(input,flavor,das);
            job.print(doc, pras);
        }
    }
    catch(Exception e){
        System.out.println("Failed");
    }
}

当您尝试在java之外打印同一个文件时会发生什么?这是一个我从未想到过的好问题!它的打印方式与我的错误相同。你知道为什么会这样吗?我是否生成的文本文件不正确?据我所知,Java代码只是读取系统默认打印机。我个人还没有使用过这些Java库,所以我不确定要用什么代码来改变它。我认为您指定的纵向至少可以垂直打印。请尝试设置
das.add(OrientationRequested.grait)当您尝试在java之外打印同一个文件时会发生什么?这是一个我从未想到过的好问题!它的打印方式与我的错误相同。你知道为什么会这样吗?我是否生成的文本文件不正确?据我所知,Java代码只是读取系统默认打印机。我个人还没有使用过这些Java库,所以我不确定要用什么代码来改变它。我认为您指定的纵向至少可以垂直打印。请尝试设置
das.add(OrientationRequested.grait)