Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用java中的ApachePOI从.doc和.docx文件中从右向左提取文本?_Java_Apache Poi_Right To Left - Fatal编程技术网

如何使用java中的ApachePOI从.doc和.docx文件中从右向左提取文本?

如何使用java中的ApachePOI从.doc和.docx文件中从右向左提取文本?,java,apache-poi,right-to-left,Java,Apache Poi,Right To Left,我正在开发一个应用程序,它将.doc或.docx文件作为输入,并将它们的字提取到数据库表中 为此,我尝试了ApachePOI,并使用从左到右的文本格式(如英语)成功地管理了它 代码如下: // FilterDOC Method Which Tacke A Document As Input and Return A Generic // List Withs Its Words public static void parseDoc(File SelectedFile, FileReader

我正在开发一个应用程序,它将.doc或.docx文件作为输入,并将它们的字提取到数据库表中

为此,我尝试了ApachePOI,并使用从左到右的文本格式(如英语)成功地管理了它

代码如下:

// 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());      }
}
//FilterDOC方法,将文档作为输入并返回泛型
//用它的话列出清单
公共静态void parseDoc(文件选择文件,文件读取器在中){
试一试{
//创建POI文件系统对象
POIFSFISTEM fs=新POIFSFISTEM(新文件输入流(
选定的文件);
//为此文件创建文档
HWPF文件文件=新的HWPF文件(fs);
//创建WordExtractor以读取word文档的文本
WordExtractor we=新的WordExtractor(文档);
String ExtractedText=we.getText();
//删除新的空行
String removeMptylines=ExtractedText.replaceAll(“[\n\r]”,“”);
//过滤任何符号的文档
String[]Wordlist=removemptylines
.split(“[:\\,\.\\\\?\{\\[\\]\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
列表行=新的ArrayList();
for(字符串行:单词列表){
if(line!=null&&!line.trim().isEmpty()
&&!line.equals(“\\W\\s+”){
lines.add(line.trim());
}
}
//输出文档
用于(字符串:行){
System.out.println(字符串);}
in.close();
} 
捕获(IOE){
System.out.println(“IO异常!!”+e.getMessage());}
}
如何将同一个库用于具有从右向左文本格式(如阿拉伯语)的文档?

对于“从右向左”设置:

sheet.setRightToLeft()

你能澄清你看到的问题是什么吗?没有文字?字符不正确?方向错误?