2013-03-24 3 views
2

Я разрабатываю приложение, которое будет принимать файлы .doc или .docx как входные данные и извлекать их слова в таблицу базы данных.Как извлечь текст справа налево из файлов .doc и .docx с помощью Apache POI в java?

Я пробовал Apache POI для этой цели, и я успешно справился с этим с документами в текстовом формате слева направо (например, на английском языке).

Вот код:

// FilterDOC Method Which Tacke A Document As Input and Return A Generic 
// List Withs Its Words 

public static void parseDoc(File SelectedFile, FileReader in) { 
try { 
     // Create a POI File System object 
     POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(
       SelectedFile)); 

    // Create a document for this file 
    HWPFDocument doc = new HWPFDocument(fs); 

    // Create a WordExtractor to read the text of the word document 
      WordExtractor we = new WordExtractor(doc); 

     String ExtractedText = we.getText(); 

    // Removing New Empty Lines 
    String RemoveEmptyLines = ExtractedText.replaceAll("[\n\r]", ""); 

    // Filtering document of any symbols 
    String[] Wordlist = RemoveEmptyLines 
       .split("[:\\,\\.\\}\\?\\{\\[\\]\\‘\\_\\*\\&\\%\\#\\$\\@\\!\\~\\/\\//\\|\\?\\“\\:-\\;\\W\\s+]"); 

    List<String> lines = new ArrayList<String>(); 

     for (String line : Wordlist) { 

      if (line != null && !line.trim().isEmpty() 
        && !line.equals("\\W\\s+")) { 
       lines.add(line.trim()); 

      } 

     } 

     // output the document 
    for (String string : lines) { 

      System.out.println(string);} 
        in.close(); 



    } 

      catch (IOException e){ 
      System.out.println("IO Exception !!"+ e.getMessage());  } 
} 

Как я могу использовать ту же библиотеку документов с написанием справа налево в текстовом формате (например, арабский)?

+0

Не могли бы вы пояснить, что проблема в том, что вы видите? Нет текста? Неверные символы? Неправильное направление? – Gagravarr

ответ

0

для правостороннего чтобы позволить установить:

sheet.setRightToLeft() 
+0

Я набрал свой код , так как я могу использовать эту строку ?? –