簡體   English   中英

從JAVA類將RTF文件直接后台處理到Lipi打印機

[英]Spool a RTF file directly to a Lipi printer from a JAVA class

我的服務器上有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 \\ froman \\ fcharset0 Times New Roman;} {\\ f1 \\ froman \\ fcharset0 Courier;} {\\ f2 \\ froman \\ fcharset0 Arial;} {\\ f3 \\ froman \\ fcharset0未知;}} {\\ 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標題3;} {\\ style \\ s2 \\ ql \\ fi0 \\ li0 \\ ri0 \\ f2 \\ fs28 \\ b \\ i \\ cf0標題2;} { \\\\ style \\ s1 \\ ql \\ fi0 \\ li0 \\ ri0 \\ f2 \\ fs32 \\ b \\ cf0標題1;}} ..... .... ...

.... ... ...

我要去哪里錯了?

gh,可惡的生意。 最簡單的方法是調用諸如寫字板或openoffice之類的外部程序來直接打印文件-如果您調用write.exe /p filename.rtf ,它將彈出打印對話框。 OpenOffice應該與Java建立了橋梁,您可能需要研究javax.activation

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM