如何隐藏Word文档中两个标记(<hidden> .. </hidden>)之间的数据

时间:2013-05-16 07:15:00

标签: java apache-poi

我能够使用Apache POI读取输入文档,并且还能够找到标签之间的数据(隐藏的内容),但问题是我无法在输出文件中写入数据。我怎样才能写入数据并将其隐藏在输出生成的文件中..

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.poi.hwpf.HWPFDocument;
import  org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.hwpf.usermodel.CharacterRun;
import org.apache.poi.hwpf.usermodel.Range;


public class Hidden {
    public static void main(String args[]) throws Exception
    {
        File file = new File("D://me1.doc");
        FileInputStream fin = new FileInputStream(file);
        FileOutputStream fout = new FileOutputStream("D://Test.doc");
        HWPFDocument doc = new HWPFDocument(fin);
        Range range = doc.getRange();    
        WordExtractor extractor = new WordExtractor(doc);
        String para[] = extractor.getParagraphText();    
        String output="";
        String hidden="";
        for (String p : para) {
            String[] w = p.split("[<\\>]");             
            for(int k=0 ;k<w.length;k++){
                if(w[k]!=null && !"".equalsIgnoreCase(w[k])){
                    if("hidden".equalsIgnoreCase(w[k])){                            
                        k++;
                        CharacterRun  run = range.getCharacterRun(k);
                        hidden= w[k];
                        k++;                       
                        System.out.println(hidden);
                        run.setVanished(true);
                        doc.write(fout); 
                    }else{

                    }
                }
            } 
        }
        fout.close();
        fin.close();
    }
}

0 个答案:

没有答案