2011-03-04 49 views
1

我已經找到一種方法,通過在新的資源目錄中存儲它們,並把它放置在清單下一個新的MIME類型的自定義ODF文件中的文件存儲到操縱ODT文件嵌入的文件。如何使用Java和OpenOffice UNO API

我想知道的是如何完成以下在我的Java的OpenOffice插件:

  1. 閱讀我的資源文件:是否有可能獲得其內容的InputStreamReader?
  2. 創建一個新的文件:我可以以某種方式創建並寫出到一個新的文件?

如何做到這一點的任何想法。我是UNO API的新手,並且感到困惑。

回答

1
/* this java code need one jar file named with odfdom-java 0.8.6 , and it will able to read any odt file and can store in string and can also change the content of the original file on new or existing file what ever your requirement . if you want to create new file then give new file name and path at the method "document.save("D:/newFile.odt")". 
*/ 

1)--> FileReaderTemp .java 

package com.ik.candidate.util; 

import java.io.File; 

import org.apache.log4j.Logger; 
import org.odftoolkit.odfdom.doc.OdfTextDocument; 
import org.odftoolkit.odfdom.incubator.search.TextNavigation; 
import org.odftoolkit.odfdom.incubator.search.TextSelection; 

public class FileReaderTemp { 

    public static void main(String[] args) throws Exception { 
     parseAll("d:/odt_resume/vrunda_ashar_Rajkot_00.odt"); 
    } 

    public static void parseAll(String fileName) throws Exception { 
     Logger logger = Logger.getLogger(FileReaderTemp.class); 
     try { 
      File file = new File(fileName); 
      if (!file.exists()) { 
       logger.debug("Sorry File does not Exists!"); 
      } else if (file.getName().endsWith(".odt")) { 
       OpenOfficeParser odt = new OpenOfficeParser(); 

       //getting contents of odt file in string 
       String string = odt.getText(fileName); 
       TextNavigation search; 
       OdfTextDocument document = (OdfTextDocument) OdfTextDocument.loadDocument(fileName); 

       // for replacing Email id 
       String emailID="[email protected]"; 
      // String emailID = new FindEmailID().findEmail(string); 
       System.out.println("Email is :: " + emailID); 
       search = new TextNavigation(emailID, document); 
       while (search.hasNext()) { 
       System.out.println("Search is : " + search); 
      TextSelection item = (TextSelection) search.getCurrentItem(); 
       item.replaceWith(""); 
      System.out.println("Email id Removed succesfully :: "); 
        } 


       // for replacing contact no 
        String no="9856565698"; 
          //String no = new FindContactNo().findContact(string); 
       System.out.println("Contact no is :: " + no); 

        no = no.replace("+", ""); 
        // System.out.println("After removed + : " + no); 

        search = new TextNavigation(no, document); 
        // iterate through the search results 
       while (search.hasNext()) { 
       // System.out.println("Search is No : " + search); 
      TextSelection item = (TextSelection) search.getCurrentItem(); 
       item.replaceWith(""); 
         System.out.println("Contact no Removed succesfully :: "); 
        } 


       // save the modified document back to a original file other wise it will create new odt file 
       document.save(fileName); 
      } 
     } 

     catch (Exception e) { 
      //logger.error("Exception : " + e); 
      System.out.println("Not found ::"); 
     } 
    } 
} 
相關問題