2015-09-09 86 views

回答

1

您必須解析完整的.docx文件。不可能只讀取其中的部分內容。否則,如果你想知道如何選擇一個特定的頁碼,我不敢告訴你(至少我相信)這個詞不存儲頁碼,因此在庫中沒有任何功能可以查詢指定的頁面。 (I已經在另一個論壇上讀到過,它實際上可能是錯誤的信息)。 PS:Excel的POI包含.getSheetAt()方法(這可能有助於你的研究)

但也有其他的方法來_1的存取您的網頁。例如,您可以閱讀docx文檔的行並搜索頁面編號(如果您的文本包含這些編號,可能會崩潰)。另一種方法是尋找這將是更準確的網站的標題:

HeaderStories headerStore = new HeaderStories(doc); 
    String header = headerStore.getHeader(pageNumber); 

這應該給你指定的頁面的標題。同樣的,頁腳:

HeaderStories headerStore = new HeaderStories(doc); 
    String footer = headerStore.getFooter(pageNumber); 

如果這麼想的工作。我沒有真正進入該API ....

這裏一個很草率的解決方案一個小例子:

import java.io.*; 
import org.apache.poi.hwpf.HWPFDocument; 
import org.apache.poi.hwpf.extractor.WordExtractor; 

public class ReadDocFile 
{ 
    public static void main(String[] args) 
    { 
     File file = null; 
     WordExtractor extractor = null; 
     try 
     { 

      file = new File("c:\\New.doc"); 
      FileInputStream fis = new FileInputStream(file.getAbsolutePath()); 
      HWPFDocument document = new HWPFDocument(fis); 
      extractor = new WordExtractor(document); 
      String[] fileData = extractor.getParagraphText(); 
      for (int i = 0; i < fileData.length; i++) 
      { 
       if (fileData[i].equals("headerPageOne")){ 
        int firstLineOfPageOne = i; 
       } 
       if (fileData[i]).equals("headerPageTwo"){ 
        int lastLineOfPageOne = i 
       } 
      } 
     } 
     catch (Exception exep) 
     { 
      exep.printStackTrace(); 
     } 
    } 
} 

如果此去,我會建議你創建你的頭一個String[]和將for-loop折射到單獨的getPages()方法。因此你的循環將如下所示:

List<String> = new ArrayList<String>(Arrays.asList("header1","header2","header3","header4")); 

    for (int i = 0; i < fileData.length; i++) 
        { 
         //well there should be a loop for "x" too 
         if (fileData[i].equals(headerArray[x])){ 
          int firstLineOfPageOne = i; 
         } 
         if (fileData[i]).equals(headerArray[x+1]){ 
          int lastLineOfPageOne = i 
         } 
        } 

您可以創建一個對象(INT pageStart,INT PageStop),至極將是你的方法的產物。

我希望它幫你:)

+0

我只是檢查,醫生在HeaderStories(DOC)必須HWPFDocument,它不與.DOCX工作,但感謝你的回答! – Alexandr

相關問題