2013-05-08 4 views
3

java로 단어 문서의 페이지를 계산하려고합니다.Word 문서에서 페이지 계산하기

ten.doc: 1 
twelve.doc: 1 
nine.doc: 1 
one.doc: 1 
eight.doc: 1 
4teen.doc: 1 
5teen.doc: 1 
six.doc: 1 
seven.doc: 1 

그리고 이것은 내가 처음 세 문서 '로, 기대했던되지 않습니다 :

내 실제 코드, 나는 아파치 POI 라이브러리

String path1 = "E:/iugkh"; 
File f = new File(path1); 
File[] files = f.listFiles(); 
int pagesCount = 0; 
for (int i = 0; i < files.length; i++) { 
    POIFSFileSystem fis = new POIFSFileSystem(new FileInputStream(files[i])); 
    HWPFDocument wdDoc = new HWPFDocument(fis); 
    int pagesNo = wdDoc.getSummaryInformation().getPageCount(); 
    pagesCount += pagesNo; 
    System.out.println(files[i].getName()+":\t"+pagesNo); 
} 

출력은을 사용하고있다 페이지 길이는 4이고 다른 페이지 길이는 1-5 페이지입니다.

내가 무엇이 누락 되었습니까?

페이지를 올바르게 집계하기 위해 다른 라이브러리를 사용해야합니까?

미리 감사드립니다.

+1

Word와 같은 소리는 파일의 통계를 업데이트하는 데 방해가되지 않습니다 (일반적으로 우울함). 단어로 파일을 열면 통계를보고 저장 한 다음 수정합니까? – Gagravarr

+0

이 지금 작동합니까? 그것이 나를 위해 일한 poi-3.9 버전으로 테스트했습니다. 감사합니다 – teckysols

+0

문제가 해결 되었습니까? 페이지 수 계산 방법을 알려주시겠습니까? –

답변

2

이 정보는 도움이 될 수 있습니다. 그것은 (때로는 페이지를 분리하는 데 사용되는) 양식 피드의 수를 계산하지만, 모든 문서에서 작동하는지 확신 할 수 없습니다 (그렇지 않다고 생각합니다).

WordExtractor extractor = new WordExtractor(document); 
String[] paragraphs = extractor.getParagraphText(); 

int pageCount = 1; 
for (int i = 0; i < paragraphs.length; ++i) { 
    if (paragraphs[i].indexOf("\f") >= 0) { 
     ++pageCount; 
    } 
} 

System.out.println(pageCount); 
0

이 슬프게도은 버그 말씀의 일부 버전 (2010 이전 버전 분명히, 아마도 단지 Word 2000의 일명 9.0) 또는 적어도 페이지를 계산하는 데 사용되는 COM 미리보기 프로그램의 일부 버전이다. https://issues.apache.org/jira/browse/TIKA-1523

당신은 물론이 실제 페이지를 표시하고 또한 수를 다시 계산, Word에서 파일을 열 수 있지만, 처음에 그것은 또한 보여줍니다 사실 "1": 아파치의 devs는 이에 대한 해결 방법을 구현하는 것을 거부 . 그러나 여기에 파일에 저장된 메타 데이터는 단순히 "1"또는 아무 것도 아닐 수도 있습니다 (아래 참조). POI는 레이아웃을 "리플 로우 (reflow)"하지 않고 정보를 계산합니다.

이 때문에 메타 데이터는 파일 열기 및 편집시 워드 프로세서 프로그램에서만 업데이트됩니다. Word 2010에서 "읽기 전용"(인터넷에서 다운로드되기 때문에) 파일을 열도록 지시하면 페이지 열에 ""가 표시됩니다. 두 번째 스크린 샷을 참조하십시오. TIKA 또는 POI의 문제가 아니라이 파일의 버그입니다.

또한 MS가 있습니다 (워드 9.0/2000) 버그가 확인 된 것을 발견 : http://support.microsoft.com/kb/212653/en-us

열고 Word의 새 버전으로 폐쇄 다시는 다른 가능/불가능한 경우 해결 방법은 문서를 PDF (또는 심지어 xps)로 감추고 페이지를 계산하는 것입니다.