Apache POI格式问题

时间:2012-09-01 20:08:49

标签: java apache-poi

我想知道当我读取.doc文件时是否有人可以帮我弄清楚为什么我的文字没有排队。到目前为止,在我的代码中,我使用的是WordExtractor,但是我遇到的格式问题是没有正确排列的东西。这是我使用Java 1.7编写的代码。

public class Doc {
 File docFile = null;
 WordExtractor docExtractor = null ;
 WordExtractor exprExtractor = null ;
 public void read(){
  docFile = new File("blue.doc");
   try{
     FileInputStream fis = new FileInputStream(docFile.getAbsolutePath());
     HWPFDocument doc=new HWPFDocument(fis);
     docExtractor = new WordExtractor(doc);
     }catch(Exception e){
     System.out.println(e.getMessage());
  }


 System.out.println(docExtractor.getText());



  }
 }

程序如何显示文档。

 A                                                                      E
I'm stuck in Folsom Prison, and time keeps draggin on.  

它应该像这样显示

     A                                              E
 I'm stuck in Folsom Prison, and time keeps draggin on.  

1 个答案:

答案 0 :(得分:0)

当然这不起作用。您正在将文档文件的内容提取到字符串变量中(这会将格式转换为文档,如段落和所有内容)。此外,您将文本打印到控制台,然后您希望它看起来与Microsoft Word中的完全一样?

接下来,你应该想想你想做什么。假设您要验证文档的格式和内容,我的答案如下。使用getText()将文档转换为纯文本将以扭曲的格式提供文档内容,这对您没有帮助。通过使用POI库,您应该尝试访问文档中的每个段落和表格,并验证/读取/写入您想要的任何内容。

doc.getRange()会给你一个Range对象。通过引用http://poi.apache.org/apidocs/org/apache/poi/hwpf/usermodel/Range.html来播放此对象,您将能够访问文档中的所有段落,表格和部分。这应该可以帮助你通过程序编制word文档。