`

java解析pdf,word,ppt,excel

阅读更多
用pdfbox的jar包来解析pdf:

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.OutputStreamWriter;

import org.pdfbox.pdmodel.PDDocument;
import org.pdfbox.util.PDFTextStripper;

public class Pdf2text { 
    public static String getTxt(File f) throws Exception {   
        String ts="";   
        try{   
            String temp = "";   
            PDDocument pdfdocument = PDDocument.load(f);
          
            ByteArrayOutputStream out = new ByteArrayOutputStream();   
            OutputStreamWriter writer = new OutputStreamWriter(out);   
            PDFTextStripper stripper = new PDFTextStripper();
          
            stripper.writeText(pdfdocument.getDocument(), writer);  
          
            pdfdocument.close();   
            out.close();   
            writer.close();   
            byte[] contents = out.toByteArray();   
            ts = new String(contents);   
            System.out.println(f.getName() + "length is:" + contents.length + "\n");   
        }catch(Exception e){   
            e.printStackTrace();   
        }   
        finally{   
            return ts;   
        }   
    } 
     
    public static void main(String[] args){ 
        File file = new File("E:/600536_2008_zzy.pdf"); 
        try { 
            System.out.println(Pdf2text.getTxt(file)); 
        } catch (Exception e) { 
            // TODO 自动生成 catch 块 
            e.printStackTrace(); 
        } 
    } 
}
======================

word,excel和ppt都用POI的jar包来解析:

    import java.io.File;  
     
    import org.apache.poi.POITextExtractor;  
    import org.apache.poi.extractor.ExtractorFactory;  
     
    public class DocxParser {  
     
        /**
          * @param args
          */ 
        public static void main(String[] args) {  
            try {  
                 File inputFile = new File("D:\\test.docx");  
                //File inputFile = new File("D:\\test.pptx");  
                //File inputFile = new File("D:\\test.xlsx");  
                //File inputFile = new File("D:\\test.xls");  
                //File inputFile = new File("D:\\test.doc");  
                //File inputFile = new File("D:\\test.ppt");  
                 POITextExtractor extractor = ExtractorFactory  
                         .createExtractor(inputFile);  
                 System.out.println("Document Text: ");  
                 System.out.println("====================");  
                 System.out.println(extractor.getText());  
                 System.out.println("====================");  
             } catch (Exception ex) {  
                 ex.printStackTrace();  
             }  
         }  
     
    } 

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import org.apache.poi.hwpf.extractor.WordExtractor;

public class Word2text {

public static void main(String[] args) {
   File file = new File("E:\\2009.doc");
   try {
    FileInputStream fis = new FileInputStream(file);
    WordExtractor wordExtractor = new WordExtractor(fis);
    System.out.println("【 使用getText()方法提取的Word文件的内容如下所示:】");
    System.out.println(wordExtractor.getText());
   } catch (FileNotFoundException e) {
    e.printStackTrace();
   } catch (IOException e) {
    e.printStackTrace();
   }
}
}

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;

import org.apache.poi.hslf.HSLFSlideShow;
import org.apache.poi.hslf.model.TextRun;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.usermodel.SlideShow;

public class Ppt2text {

/**
* @param args
* @throws FileNotFoundException
*/
public static void main(String[] args) throws FileNotFoundException {
   File file = new File("E:\\1025681983.ppt");
   InputStream fis = new FileInputStream(file);
   try {
    getDocument(fis);
  
   } catch (Exception e) {
  
    e.printStackTrace();
   }
}

public static void getDocument(InputStream is) throws Exception {
   StringBuffer content = new StringBuffer("");
   try {
    SlideShow ss = new SlideShow(new HSLFSlideShow(is));// is
                 // 为文件的InputStream,建立SlideShow
    Slide[] slides = ss.getSlides();// 获得每一张幻灯片
    for (int i = 0; i < slides.length; i++) {
     TextRun[] t = slides[i].getTextRuns();// 为了取得幻灯片的文字内容,建立TextRun
     for (int j = 0; j < t.length; j++) {
      content.append(t[j].getText());// 这里会将文字内容加到content中去
     }
     content.append(slides[i].getTitle());
    }
    String str = new String(content);
    System.out.println(str.toString());
  
   } catch (Exception ex) {
    System.out.println(ex.toString());
   }
 
}

}
=============

对excel的解析也可以用jxl的jar包来解析:

import java.io.File;

import jxl.Cell;
import jxl.CellType;
import jxl.DateCell;
import jxl.NumberCell;
import jxl.Sheet;
import jxl.Workbook;


public class Excel2text {
public static void main(String args[]) {

   try {

    Workbook workbook = null;

    try {
     workbook = Workbook.getWorkbook(new File("e:\\Dealerlist_3.xls"));
    } catch (Exception e) {
     throw new Exception("file to import not found!");
    }

    Sheet sheet = workbook.getSheet(0);
    Cell cell = null;

    int columnCount = 3;
    int rowCount = sheet.getRows();
    for (int i = 0; i < rowCount; i++) {
     for (int j = 0; j < columnCount; j++) {
      // 注意,这里的两个参数,第一个是表示列的,第二才表示行
      cell = sheet.getCell(j, i);
      // 要根据单元格的类型分别做处理,否则格式化过的内容可能会不正确
      if (cell.getType() == CellType.NUMBER) {
       System.out.print(((NumberCell) cell).getValue());
      } else if (cell.getType() == CellType.DATE) {
       System.out.print(((DateCell) cell).getDate());
      } else {
       System.out.print(cell.getContents());
      }

      // System.out.print(cell.getContents());
      System.out.print("\t");
     }
     System.out.print("\n");
    }
    // 关闭它,否则会有内存泄露
    workbook.close();
   } catch (Exception e) {

   }

}
}

import java.io.*;
import jxl.*;
import jxl.write.*;
import jxl.format.*;

public class Text2Excel {
public static void main(String args[]) {

   try {

    File tempFile = new File("e:" + java.io.File.separator
      + "output00.xls");
    System.out.println("e:" + java.io.File.separator + "output00.xls");

    WritableWorkbook workbook = Workbook.createWorkbook(tempFile);
    WritableSheet sheet = workbook.createSheet("TestCreateExcel", 0);

    // 一些临时变量,用于写到excel中
    Label l = null;
    jxl.write.Number n = null;
    jxl.write.DateTime d = null;

    // 预定义的一些字体和格式,同一个Excel中最好不要有太多格式
    WritableFont headerFont = new WritableFont(WritableFont.ARIAL, 12,
      WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE,
      jxl.format.Colour.BLUE);
    WritableCellFormat headerFormat = new WritableCellFormat(headerFont);

    WritableFont titleFont = new WritableFont(WritableFont.ARIAL, 10,
      WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE,
      jxl.format.Colour.RED);
    WritableCellFormat titleFormat = new WritableCellFormat(titleFont);

    WritableFont detFont = new WritableFont(WritableFont.ARIAL, 10,
      WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE,
      jxl.format.Colour.BLACK);
    WritableCellFormat detFormat = new WritableCellFormat(detFont);

    NumberFormat nf = new NumberFormat("0.00000"); // 用于Number的格式
    WritableCellFormat priceFormat = new WritableCellFormat(detFont, nf);

    DateFormat df = new DateFormat("yyyy-MM-dd");// 用于日期的
    WritableCellFormat dateFormat = new WritableCellFormat(detFont, df);

    // 剩下的事情,就是用上面的内容和格式创建一些单元格,再加到sheet中
    l = new Label(0, 0, "用于测试的Excel文件", headerFormat);
    sheet.addCell(l);

    // add Title
    int column = 0;
    l = new Label(column++, 2, "标题", titleFormat);
    sheet.addCell(l);
    l = new Label(column++, 2, "日期", titleFormat);
    sheet.addCell(l);
    l = new Label(column++, 2, "货币", titleFormat);
    sheet.addCell(l);
    l = new Label(column++, 2, "价格", titleFormat);
    sheet.addCell(l);

    // add detail
    int i = 0;
    column = 0;
    l = new Label(column++, i + 3, "标题 " + i, detFormat);
    sheet.addCell(l);
    d = new DateTime(column++, i + 3, new java.util.Date(), dateFormat);
    sheet.addCell(d);
    l = new Label(column++, i + 3, "CNY", detFormat);
    sheet.addCell(l);
    n = new jxl.write.Number(column++, i + 3, 5.678, priceFormat);
    sheet.addCell(n);

    i++;
    column = 0;
    l = new Label(column++, i + 3, "标题 " + i, detFormat);
    sheet.addCell(l);
    d = new DateTime(column++, i + 3, new java.util.Date(), dateFormat);
    sheet.addCell(d);
    l = new Label(column++, i + 3, "SGD", detFormat);
    sheet.addCell(l);
    n = new jxl.write.Number(column++, i + 3, 98832, priceFormat);
    sheet.addCell(n);

    // 设置列的宽度
    column = 0;
    sheet.setColumnView(column++, 20);
    sheet.setColumnView(column++, 20);
    sheet.setColumnView(column++, 10);
    sheet.setColumnView(column++, 20);

    workbook.write();
    workbook.close();
   } catch (Exception e) {
            e.printStackTrace();
   }

}
}
分享到:
评论

相关推荐

    java解析pdf,word,ppt,excel 源码

    通过上述分析,我们可以看到,使用Java解析PDF、Word、PPT和Excel文档主要是依赖于两个强大的库:PDFBox和POI。这两个库提供了丰富的API,可以方便地进行文档的读写操作。无论是提取文档中的文本,还是进一步的数据...

    java文档excel、word、pdf、ppt转图片

    在Java编程环境中,将文档(如Excel、Word、PDF、PPT)转换为图片是一种常见的需求,这在处理大量文档预览、数据可视化或者移动设备兼容性问题时尤其有用。以下是一些关于如何使用Java实现这种转换的关键知识点: 1...

    Word,Excel,PPT等转PDF文件JAVA源代码

    本主题主要关注如何使用JAVA编程语言将常见的办公软件格式,如Word(.doc)、Excel(.xls)、PowerPoint(.ppt)以及图像文件(如.tif)转换为统一的PDF格式。PDF(Portable Document Format)因其跨平台兼容性和...

    使用java将office word pdf excel ppt文件转换成html文件

    本篇文章将深入探讨如何使用Java将Office Word、PDF、Excel和PPT文件转换为HTML文件。 首先,我们需要了解的是,Java中的文件转换通常依赖于第三方库,因为Java标准库并不直接支持这些特定的转换功能。以下是一些...

    word,excel,ppt转换成pdf项目的依赖jar

    总之,“word,excel,ppt转换成pdf项目的依赖jar”是一个基于Java的解决方案,通过集成Apache POI、iText和PDFBox等库,实现了Office文档到PDF的高效转换。如果你在Java环境中处理文件转换,这个项目可以作为一个有...

    lucene word ppt excel pdf全文检索

    例如,可以使用Apache POI解析Word和Excel文件,Apache Slide和Apache POI的HSLF模块处理PPT文件,PDFBox或iText解析PDF文件。TXT文件则可以直接读取。 2. **内容提取**:从解析后的数据中提取出文本内容,过滤掉...

    word,excel,ppt文件转换成pdf文件

    总结来说,Java代码实现的Word、Excel和PPT转PDF工具类是通过使用Apache POI库读取Office文件,再结合iText、PDFBox或Aspose等库生成PDF,从而完成文件格式的转换。这种转换有助于确保文档在各种环境下的统一展示,...

    word、excel、ppt转pdf,spring boot小demo

    本项目是一个基于Spring Boot框架实现的实用工具,用于将Microsoft Office的三种常见文件格式——Word(.docx)、Excel(.xlsx)和PowerPoint(.pptx)转换为PDF格式。这个小Demo提供了完整的功能,无需任何水印,...

    unity 显示word excel pdf ppt 等文件

    例如,可以使用FreeSpire系列库(如FreeSpire.Doc for .NET、FreeSpire.XLS for .NET)来处理Word和Excel文件,使用PDFNet或Qoppa的PDF库来解析PDF,对于PPT,可以使用Aspose.Slides。这些库通常提供.NET版本,可以...

    word、ppt、excel转pdf读取页数Demo

    这通常通过解析PDF文件的结构来完成,识别出每个"Page"对象。例如,PDFBox和iText库提供了API来获取PDF的元数据,其中就包含了页数信息。 5. **编程接口(API)**:在开发此类应用时,开发者可能使用了公开的API,...

    Word、Excel、PPT、PDF在线预览解决方案.zip

    "Word、Excel、PPT、PDF在线预览解决方案" 提供了一种高效便捷的方式,让用户无需下载文件即可查看各种类型的文档,提高了用户体验,同时也保障了数据安全。下面我们将详细探讨这些文档格式的在线预览技术。 首先,...

    word、ppt、excel转pdf的Demo

    总的来说,这个"word、ppt、excel转pdf的Demo"项目展示了如何利用Java编程和特定库来实现Office文档到PDF的转换,这对于那些需要在不同平台之间共享和分发文档的组织来说,是一个非常实用的工具。开发者可以基于此...

    \java通过url在线预览Word、excel、ppt、pdf、txt文档中的内容

    "Java 通过 URL 在线预览 Word、Excel、PPT、PDF、TXT 文档中的内容" Java 语言可以通过 URL 在线预览 Word、Excel、PPT、PDF、TXT 文档中的内容。下面将详细介绍如何实现这一功能。 Word 文档预览 在 servlet ...

    poi将word、PPT、Excel转pdf实现在线预览的jar包

    标题中的“poi将word、PPT、Excel转pdf实现在线预览的jar包”涉及到的是Apache POI库在Java开发中的应用,以及如何利用它来处理Microsoft Office文档并转换为PDF格式,以便进行在线预览。Apache POI是Java平台上用于...

    java通过url在线预览Word、excel、ppt、pdf、txt文档

    ### Java通过URL在线预览Word、Excel、PPT、PDF、TXT文档的关键技术与实现 #### 一、概述 在互联网应用中,实现对不同格式文档(如Word、Excel、PPT、PDF、TXT等)的在线预览功能是一项常见但重要的需求。这不仅...

    在线或本地读取word、ppt、pdf、excel、doc等文件

    在IT领域,尤其是在文档处理和数据管理中,能够在线或本地读取各种文件格式,如Word、PPT、PDF、Excel以及Doc等,是至关重要的技能。这些文件格式广泛应用于日常工作、学术研究和项目协作中,因此理解如何有效读取和...

    java读word txt ppt pdf excel核心程序代码

    根据给定的文件标题、描述、标签以及部分内容,我们可以总结出以下关键的IT知识点,主要聚焦于使用Java语言处理各种文档格式(如Word、TXT、PPT、PDF、Excel)的核心程序代码。以下是对每种文件类型处理方法的详细...

    java读取word、PDF、txt、excel

    在IT行业中,对各种文件格式的处理是常见的需求,尤其是对于办公文档如Word、PDF、文本文件(txt)以及电子表格文件(Excel)。本项目针对这些格式提供了完整的读取功能,使得开发者能够轻松地集成到自己的应用中,...

    lucene 3.6 检索文件 pdf word ppt excel txt html xml

    在版本3.6中,它提供了强大的文件检索功能,支持对多种文件类型的搜索,包括PDF、Word、PPT、Excel、TXT、HTML和XML等。这个版本的Lucene已经过封装,使得开发者能够更方便地集成到自己的项目中,实现快速的全文检索...

    java将PDF转word ppt xlsx text

    首先解析PDF,然后逐页复制内容到Word文档结构中。 2. **PDF转PPT** 将PDF转换为PPT可能需要更复杂的处理,因为PPT文件通常包含更多的交互性和动态元素。可以使用Apache POI库创建PowerPoint演示文稿,并将PDF内容...

Global site tag (gtag.js) - Google Analytics