2013-10-25 88 views
0

我創建了一個java applet,用於將文本文件內容從遠程位置複製到本地計算機。它的工作正常,並嘗試使用dos命令(Windows XP)進行打印。它不工作,但它在Ubuntu操作系統中工作正常。你可以幫我提高我的代碼..文本文件打印Java Applet不能在Windows操作系統中工作

這裏是我的代碼

try { 
      String server=this.getParameter("SERVER"); 
      String filename=this.getParameter("FILENAME"); 

      String osname=System.getProperty("os.name"); 
      String filePath=""; 

      URL url = new URL("http://10.162.26.8/openLypsaa/reports/report_oc/127.0.0.1_sys_ANN_milkbill"); 
      URLConnection connection = url.openConnection(); 
      InputStream is = connection.getInputStream(); 

      if("Linux".equals(osname)) 
      { 
       filePath = "/tmp/OLFile"; 
      } 
      else 
      { 
       filePath = "C:/WINDOWS/Temp/OLFile"; 

      } 

      OutputStream output = new FileOutputStream(filePath); 

      byte[] buffer = new byte[256]; 
      int bytesRead = 0; 
      while ((bytesRead = is.read(buffer)) != -1) 
      { 
       System.out.println(bytesRead); 
       output.write(buffer, 0, bytesRead); 
      } 
      output.close(); 

    if("Linux".equals(osname)) 
       Runtime.getRuntime().exec("lp /tmp/OLFile").waitFor(); 
      else 
       Runtime.getRuntime().exec("print C:/WINDOWS/Temp/OLFile").waitFor(); 
     } 

回答

1

在窗口中,您想使用:filePath = "C:\\WINDOWS\\Temp\\OLFile";

Runtime.getRuntime().exec("print C:\\WINDOWS\\Temp\\OLFile").waitFor(); 

你也可以谷歌約PathSeparator

+0

謝謝您的重播...現在它的工作...非常感謝你 –

1

您可以使用可在每個平臺上使用的java打印服務。此代碼片段將您的打印發送到您的默認打印機。

public static void main(String[] args) {     
    FileInputStream textStream; 
    try 
    { 
     textStream = new FileInputStream("D:\\email_addresses.txt"); 
     DocFlavor myFormat = DocFlavor.INPUT_STREAM.AUTOSENSE; 
     Doc myDoc = new SimpleDoc(textStream, myFormat, null); 

     PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); 

     aset.add(new Copies(1)); 
     aset.add(Sides.ONE_SIDED); 

     PrintService printService = PrintServiceLookup.lookupDefaultPrintService(); 

     System.out.println("Printing to default printer: " + printService.getName()); 

     DocPrintJob job = printService.createPrintJob(); 
     job.print(myDoc, aset); 

    } catch (FileNotFoundException e1) { 
     e1.printStackTrace(); 
    } catch (PrintException e) { 
     e.printStackTrace(); 
    } 
} 
+0

感謝您的回覆... –

相關問題