2011-07-25 3 views
0

javaxを使用して印刷しようとしています。 javaxはデフォルトで片面印刷され、プリンターは用紙1ページとして設定されますが、単純印刷ジョブは常に両面印刷されます。javaxの印刷は常に両面です

プリンタは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(); 
} 

私はメモ帳+ +は、そうすることができるので、プリンタが片面印刷できることを知っている...

任意の助けをいただければ幸いです..おかげで..

+0

私はこの問題をより徹底的に扱うために、以下をチェックすることをお勧めします。[javax.print libraryを使用した属性(トレイコントロール、デュプレックスなど...)による印刷](http://stackoverflow.com/ 14328012/printing-with-attributestray-control-duplex-etc-using-javax-print-library) – amaidment

答えて

1

プリンタcをこのケースでは構成が問題であるように見えました。プリンタはJava API内の命令に関係なく両面印刷を行うように構成されていました。別のプリンタでコードを試してみると、その問題を理解するのに役立ちました。

1

多分これは役立ちます:

pras.add(Sides.ONE_SIDED); 
+0

残念ながら、それは役に立たないようです。ルックアップの前に追加すると、プリンタは見つからないので、ルックアップ後に追加すると、ジョブは依然として両面印刷されます。 – arin

関連する問題