如何使用java中的ApachePOI从.doc和.docx文件中从右向左提取文本?
我正在开发一个应用程序,它将.doc或.docx文件作为输入,并将它们的字提取到数据库表中 为此,我尝试了ApachePOI,并使用从左到右的文本格式(如英语)成功地管理了它 代码如下:如何使用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
// 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()
你能澄清你看到的问题是什么吗?没有文字?字符不正确?方向错误?