2013-06-05 4 views
4

Apache POI를 사용하고 있습니다.POI를 사용하여 굵게 기울임 꼴로 된 단어 문서를 읽는 방법

나는

심지어 "org.apache.poi.hwpf.usermodel를 사용하여 테이블을 가져 사용하여 문서 파일에서 텍스트를 읽을 수 있어요"org.apache.poi.hwpf.extractor.WordExtractor ". 표 "

하지만 제발, 어떻게 텍스트의 굵게/기울임 꼴 서식을 가져올 수 있습니다.

미리 감사드립니다.

답변

4

WordExtractor은 텍스트 만 반환하고 그 외에는 아무것도 반환하지 않습니다.

단어 문서의 텍스트 + 형식을 얻는 가장 간단한 방법은 Apache Tika으로 전환하는 것입니다. Apache Tika는 Apache POI 위에 구축되며 일반 텍스트 추출과 다양한 추출 (서식있는 XHTML)을 제공합니다.

코드를 직접 작성하려면 Tika's WordExtractor의 코드를 검토하는 것이 좋습니다. Apache POI를 사용하여 텍스트 실행의 서식 지정 정보를 가져 오는 방법을 보여줍니다.

+0

감사합니다. Gagravarr. 당신은 정말로 구세주입니다. –

+0

하이 닉 Apache Tika 1.3 jar 파일을 가져 오려고했습니다. (http://tika.apache.org/download.html에서 다운로드) 내 프로젝트로 가져 오지 못하는 것 같습니다. 따라서 클래스를 사용할 수 없습니다. Netbeans를 사용합니다. 7.3 Pls help 저는이 초심자 인 것처럼 저의 어리석은 의심을 무시합니다. –

+0

'tika-app.jar' 파일은 데모를위한 것이 아니라 비 자바 프로그램과의 통합을 목적으로하는 CLI 프로그램입니다. 'tika-parsers'에 maven 의존성을 나열한 다음, Maven에게 Tika 항아리와 종속성을 묻도록하십시오. – Gagravarr

1

대신 WordExtractor를 사용하여, 당신은 Range 읽을 수 있습니다

... 
HWPFDocument doc = new HWPFDocument(fis); 
Range r = doc.getRange(); 
... 

범위는 해당 모델의 중심 클래스입니다. 범위를 얻으면 텍스트의 기능으로 더 많은 것을 할 수 있습니다. 예를 들어 모든 CharacterRun을 반복하고 Italic (.isItalic())인지 또는 Italic : (.setItalic (true))으로 변경하는지 확인할 수 있습니다.

for(int i = 0; i<r.numCharacterRuns(); i++) 
     { 
      CharacterRun cr = r.getCharacterRun(i); 
      cr.setItalic(true); 
      ... 
     } 

... 
File fon = new File(yourFilePathOut); 
FileOutputStream fos = new FileOutputStream(fon); 
doc.write(fos); 
... 

HWPF 사용을 고수하면 효과가 있습니다. 사이에, 프레임에 들어가서 Paragraph의 개념이 더 편리합니다.