2011-08-06 62 views
0

我有RTF文件在服務器上我想直接使用JAVA程序打印輸出該文件。 我嘗試下面的代碼(僅考慮一臺打印機(LIPI)連接到服務器)將RTF文件直接從JAVA類中直接拖放到Lipi打印機

 FileInputStream psStream = null; 
     try { 
      psStream = new FileInputStream("C://SampleBoard2.rtf"); 
      } catch (FileNotFoundException ffne) { 
       ffne.printStackTrace(); 
      } 
      if (psStream == null) { 
       return; 
      } 
     DocFlavor psInFormat = DocFlavor.INPUT_STREAM.AUTOSENSE; 
     Doc myDoc = new SimpleDoc(psStream, psInFormat, null); 
     PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); 
     PrintService[] services = PrintServiceLookup.lookupPrintServices(psInFormat, aset); 


     PrintService myPrinter = null; 
     for (int i = 0; i < services.length; i++){ 

      String svcName = services[i].toString(); 
      myPrinter = services[i]; 
     } 
     if (myPrinter != null) { 
      DocPrintJob job = myPrinter.createPrintJob(); 
      try { 
      job.print(myDoc, aset); 

      } catch (Exception pe) {pe.printStackTrace();} 
     } else { 
     System.out.println("no printer services found"); 
     } 

的文件被後臺打印到打印機和打印還啓動,但打印機打印thge RTF文件的內容像文本文件內容。應該怎麼做才能將文件渲染到RTF然後打印?

我在印刷品中得到了類似的東西。

\ RTF1 \ ANSI \ ansicpg1252 \ deff0 {\ fonttbl {\ F0 \弗羅曼\ fcharset0時代新 羅馬;} {\ F1 \弗羅曼\ fcharset0快遞;} {\ F2 \弗羅曼\ fcharset0 宋體; } {\ f3 \ froman \ fcharset0 unknown;}} {\ colortbl \ red0 \ green0 \ blue0; \ red255 \ green255 \ blue255;} {\ stylesheet {\ style \ s0 \ ql \ fi0 \ li0 \ ri0 \ f2 \ fs24 \ cf0 Normal;} {\ style \ s3 \ ql \ fi0 \ li0 \ ri0 \ f2 \ fs26 \ b \ cf0 heading 3;} {\ style \ s2 \ ql \ fi0 \ li0 \ ri0 \ f2 \ fs28 \ b \ i \ cf0 heading 2;} {\ style \ s1 \ ql \ fi0 \ li0 \ ri0 \ f2 \ fs32 \ b \ cf0 heading 1;}} ..... ....

.... ...

我哪裏錯了?

+0

您需要一個RTF渲染引擎,與打印前需要渲染HTML頁面的方式相同。 –

+0

@ThorbjørnRavn Andersen:你可以爲'JAVA'建議一個'RTF渲染引擎',我可以在哪裏獲得它,以及如何將它放置在打印機和類之間...... –

+0

不,我沒有使用RTF引擎的經驗。準備付錢。 –

回答

0

呃,討厭的業務。最簡單的方法是調用外部程序,如寫字板或openoffice來直接打印文件--f.e.如果你調用write.exe /p filename.rtf它會彈出打印對話框。 OpenOffice應該和Java有橋樑,你可能想看看javax.activation

+0

另一個問題提到,OpenOffice在呈現Office RTF(一些圖形的東西)方面有一些缺點。最好確保保持在渲染引擎的限制範圍內。 –

相關問題