天天看点

java在线预览txt、word、ppt、execel,pdf代码

在页面上显示各种文档中的内容。在servlet中的逻辑

word: 

BufferedInputStream bis = null;

  URL url = null;

  HttpURLConnection httpUrl = null; // 建立链接

  url = new URL(urlReal);

  httpUrl = (HttpURLConnection) url.openConnection();// 连接指定的资源

  httpUrl.connect();// 获取网络输入流

  bis = new BufferedInputStream(httpUrl.getInputStream());

  String bodyText = null;

  WordExtractor ex = new WordExtractor(bis);

  bodyText = ex.getText();

  response.getWriter().write(bodyText);

excel:

  bis = new BufferedInputStream(httpUrl.getInputStream());  

content = new StringBuffer();

  HSSFWorkbook workbook = new HSSFWorkbook(bis);

  for (int numSheets = 0; numSheets < workbook.getNumberOfSheets(); numSheets++) {

   HSSFSheet aSheet = workbook.getSheetAt(numSheets);// 获得一个sheet

   content.append("/n");

   if (null == aSheet) {

    continue;

   }

   for (int rowNum = 0; rowNum <= aSheet.getLastRowNum(); rowNum++) {

    content.append("/n");

    HSSFRow aRow = aSheet.getRow(rowNum);

    if (null == aRow) {

     continue;

    }

    for (short cellNum = 0; cellNum <= aRow.getLastCellNum(); cellNum++) {

     HSSFCell aCell = aRow.getCell(cellNum);

     if (null == aCell) {

      continue;

     }

     if (aCell.getCellType() == HSSFCell.CELL_TYPE_STRING) {

      content.append(aCell.getRichStringCellValue()

        .getString());

     } else if (aCell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {

      boolean b = HSSFDateUtil.isCellDateFormatted(aCell);

      if (b) {

       Date date = aCell.getDateCellValue();

       SimpleDateFormat df = new SimpleDateFormat(

         "yyyy-MM-dd");

       content.append(df.format(date));

      }

  }

  response.getWriter().write(content.toString());

ppt:

StringBuffer content = new StringBuffer("");

  SlideShow ss = new SlideShow(new HSLFSlideShow(bis));

  Slide[] slides = ss.getSlides();

  for (int i = 0; i < slides.length; i++) {

   TextRun[] t = slides[i].getTextRuns();

   for (int j = 0; j < t.length; j++) {

    content.append(t[j].getText());

   content.append(slides[i].getTitle());

pdf:

 PDDocument pdfdocument = null;

  PDFParser parser = new PDFParser(bis);

  parser.parse();

  pdfdocument = parser.getPDDocument();

  ByteArrayOutputStream out = new ByteArrayOutputStream();

  OutputStreamWriter writer = new OutputStreamWriter(out);

  PDFTextStripper stripper = new PDFTextStripper();

  stripper.writeText(pdfdocument.getDocument(), writer);

  writer.close();

  byte[] contents = out.toByteArray();

  String ts = new String(contents);

  response.getWriter().write(ts);