javax打印始终是双面的

时间:2011-07-25 14:10:41

标签: java printing

我正在尝试使用javax进行打印。即使javax默认为单面打印,简单的打印作业也始终打印为双面打印,另外打印机设置为每张1页。

打印机是HP 2015DN,这是我的代码:

String filename = "test.txt";
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;

PrintService printService[] = PrintServiceLookup.lookupPrintServices(
    flavor, pras);

PrintService defaultService = PrintServiceLookup
    .lookupDefaultPrintService();

PrintService service = ServiceUI.printDialog(null, 200, 200,
    printService, defaultService, DocFlavor.INPUT_STREAM.AUTOSENSE, pras);

if (service != null) {
  DocPrintJob job = service.createPrintJob();
  FileInputStream fis = new FileInputStream(filename);
  DocAttributeSet das = new HashDocAttributeSet();
  Doc doc = new SimpleDoc(fis, flavor, das);
  pras.add(new Copies(1));
  job.print(doc, pras);
  fis.close();
}

我知道打印机可以单面打印,因为Notepad ++可以这样做..

任何帮助将不胜感激..谢谢..

2 个答案:

答案 0 :(得分:1)

也许这会有所帮助:

pras.add(Sides.ONE_SIDED);

答案 1 :(得分:1)

在这种情况下,打印机配置似乎是个问题;无论Java API中的说明如何,打印机都配置为双面打印。使用不同的打印机尝试使用该代码有助于理解该问题。