我試圖將一個非常簡單的.txt文件輸出到HP Photosmart噴墨打印機。當UI中的按鈕被按下時,發出打印命令。它有效,但是災難性的緩慢。打印機拿走紙張並在幾秒鐘內在屏幕上顯示「打印」,但實際發生打印前5分鐘。它必須是代碼中的某些東西,因爲其他程序的其他打印任務(即使打印相同的.txt文件)正在以正常速度發生。非常慢地向Java噴墨打印
我的代碼(僅用於打印)如下:
PrintRequestAttributeSet aset=new HashPrintRequestAttributeSet();
aset.add(OrientationRequested.LANDSCAPE);
aset.add(new Copies(1));
aset.add(Sides.DUPLEX);
aset.add(MediaSizeName.NA_LETTER);
aset.add(new NumberUp(2));
aset.add(Finishings.NONE);
FileInputStream textStream;
try{
textStream = new FileInputStream(file_name);
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
Doc mydoc = new SimpleDoc(textStream, flavor, null);
PrintService[] services=PrintServiceLookup.lookupPrintServices(flavor, aset);
PrintService defaultService =PrintServiceLookup.lookupDefaultPrintService();
if(services.length == 0) {
if(defaultService == null) {
//no printer found
} else {
//print using default
DocPrintJob job = defaultService.createPrintJob();
try{
job.print(mydoc, aset);
}
catch(Exception err){
}
}
} else {
PrintService service = ServiceUI.printDialog(null, 200, 200, services, defaultService, flavor, aset);
if (service != null){
DocPrintJob job = service.createPrintJob();
job.print(mydoc, aset);
}
}
}
catch(Exception err){
}
現在,我最終打算用這樣的熱敏收據打印機,這是我(沒有任何具體原因)設定會更快,但儘管這需要花費十分之一的時間,但它太長了。我的代碼中是否有任何內容導致這種可怕的緩慢?我對MediaSizeName,Sides,INPUT_STREAM等進行了修飾,所有這些都沒有效果,或者根本沒有打印。有沒有人有任何想法,我可能會如何趕上這個過程?提前致謝!
嘗試在您的IDE中進行代碼格式化。在Mac上,這通常通過按鍵:「Ctrl-Shift-F」或「Cmd-Shift-F」加速。 –
噢,真好。謝謝,不知道'回合!對於上面的代碼的醜陋狀態道歉;) –