2011-08-23 5 views
1

Word (2003 및 2007) 문서를 HTML 형식으로 변환합니다. Word 문서에서 텍스트, 형식 등을 읽을 수있었습니다. 그러나이 문서에는 페이지에 표시 할 필요가없는 '헤더 변경 내역'과 같은 숨겨진 텍스트가 포함되어 있습니다. Word 문서에서 숨겨진 텍스트를 식별 할 수있는 방법이 있습니까?숨겨진 텍스트 식별 Apache POI를 사용하는 Word 2003/2007

도움이 될 것입니다.

+0

POI 문서에서 볼 수있는 것은 헤더 만 읽고 조작 할 수 있지만 기록을 검색하는 옵션은 없습니다. 누군가가 관련 참조를 정확히 지적 할 수 있다면 허락한다는 것은 행복합니다. –

답변

2

나는이 완전한 (또는 정확) 솔루션이지만, DOCX 형식의 파일을, 문자 실행이

XWPFRun cr; 
if (cr.getCTR().getRPr().getVanish() != null){ 
    // it is hidden 
} 

있어 숨겨져 있는지 확인할 수 있다는 것 같으면 확실하지 않다 이것은 XML을 리버스 엔지니어링 (reverse-engineering) 한 것에서 비롯된 것입니다. 적어도 제 사용법에서는 작동하는 것 같습니다. 추가 (정보에 입각 한) 입력 및 이전 바이너리 파일 형식에서 동일한 작업을 수행하는 방법에 매우 기뻐할 것입니다.

1

다음 코드는 텍스트가

을 숨길 경우 식별하는 데 도움이

POIFSFileSystem FS = NULL;

boolean isHidden = false; 
    try { 
     fs = new POIFSFileSystem(new FileInputStream(filesname)); 
     HWPFDocument doc = new HWPFDocument(fs); 
     WordExtractor we = new WordExtractor(doc); 

     String[] paragraphs = we.getParagraphText(); 

     System.out.println("Word Document has " + paragraphs.length 
       + " paragraphs"); 
     Range range = doc.getRange(); 

     for (int k = 0; k < range.numParagraphs(); k++) { 

      org.apache.poi.hwpf.usermodel.Paragraph paragraph = range 
        .getParagraph(k); 
      paragraph.text().trim(); 
      paragraph.text().replaceAll("\\cM?\r?\n", ""); 

      for (int j = 0; j < paragraph.numCharacterRuns(); j++) { 

       org.apache.poi.hwpf.usermodel.CharacterRun cr = paragraph 
         .getCharacterRun(j); 

       if (cr.isVanished()) { 
        // it is hidden 
        System.out.println("text is hidden "); 
        isHidden = true; 
        break; 
       } 

      } 
관련 문제