用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文档主要是依赖于两个强大的库:PDFBox和POI。这两个库提供了丰富的API,可以方便地进行文档的读写操作。无论是提取文档中的文本,还是进一步的数据...
在Java编程环境中,将文档(如Excel、Word、PDF、PPT)转换为图片是一种常见的需求,这在处理大量文档预览、数据可视化或者移动设备兼容性问题时尤其有用。以下是一些关于如何使用Java实现这种转换的关键知识点: 1...
本主题主要关注如何使用JAVA编程语言将常见的办公软件格式,如Word(.doc)、Excel(.xls)、PowerPoint(.ppt)以及图像文件(如.tif)转换为统一的PDF格式。PDF(Portable Document Format)因其跨平台兼容性和...
本篇文章将深入探讨如何使用Java将Office Word、PDF、Excel和PPT文件转换为HTML文件。 首先,我们需要了解的是,Java中的文件转换通常依赖于第三方库,因为Java标准库并不直接支持这些特定的转换功能。以下是一些...
总之,“word,excel,ppt转换成pdf项目的依赖jar”是一个基于Java的解决方案,通过集成Apache POI、iText和PDFBox等库,实现了Office文档到PDF的高效转换。如果你在Java环境中处理文件转换,这个项目可以作为一个有...
例如,可以使用Apache POI解析Word和Excel文件,Apache Slide和Apache POI的HSLF模块处理PPT文件,PDFBox或iText解析PDF文件。TXT文件则可以直接读取。 2. **内容提取**:从解析后的数据中提取出文本内容,过滤掉...
总结来说,Java代码实现的Word、Excel和PPT转PDF工具类是通过使用Apache POI库读取Office文件,再结合iText、PDFBox或Aspose等库生成PDF,从而完成文件格式的转换。这种转换有助于确保文档在各种环境下的统一展示,...
本项目是一个基于Spring Boot框架实现的实用工具,用于将Microsoft Office的三种常见文件格式——Word(.docx)、Excel(.xlsx)和PowerPoint(.pptx)转换为PDF格式。这个小Demo提供了完整的功能,无需任何水印,...
例如,可以使用FreeSpire系列库(如FreeSpire.Doc for .NET、FreeSpire.XLS for .NET)来处理Word和Excel文件,使用PDFNet或Qoppa的PDF库来解析PDF,对于PPT,可以使用Aspose.Slides。这些库通常提供.NET版本,可以...
这通常通过解析PDF文件的结构来完成,识别出每个"Page"对象。例如,PDFBox和iText库提供了API来获取PDF的元数据,其中就包含了页数信息。 5. **编程接口(API)**:在开发此类应用时,开发者可能使用了公开的API,...
"Word、Excel、PPT、PDF在线预览解决方案" 提供了一种高效便捷的方式,让用户无需下载文件即可查看各种类型的文档,提高了用户体验,同时也保障了数据安全。下面我们将详细探讨这些文档格式的在线预览技术。 首先,...
总的来说,这个"word、ppt、excel转pdf的Demo"项目展示了如何利用Java编程和特定库来实现Office文档到PDF的转换,这对于那些需要在不同平台之间共享和分发文档的组织来说,是一个非常实用的工具。开发者可以基于此...
"Java 通过 URL 在线预览 Word、Excel、PPT、PDF、TXT 文档中的内容" Java 语言可以通过 URL 在线预览 Word、Excel、PPT、PDF、TXT 文档中的内容。下面将详细介绍如何实现这一功能。 Word 文档预览 在 servlet ...
标题中的“poi将word、PPT、Excel转pdf实现在线预览的jar包”涉及到的是Apache POI库在Java开发中的应用,以及如何利用它来处理Microsoft Office文档并转换为PDF格式,以便进行在线预览。Apache POI是Java平台上用于...
### Java通过URL在线预览Word、Excel、PPT、PDF、TXT文档的关键技术与实现 #### 一、概述 在互联网应用中,实现对不同格式文档(如Word、Excel、PPT、PDF、TXT等)的在线预览功能是一项常见但重要的需求。这不仅...
在IT领域,尤其是在文档处理和数据管理中,能够在线或本地读取各种文件格式,如Word、PPT、PDF、Excel以及Doc等,是至关重要的技能。这些文件格式广泛应用于日常工作、学术研究和项目协作中,因此理解如何有效读取和...
根据给定的文件标题、描述、标签以及部分内容,我们可以总结出以下关键的IT知识点,主要聚焦于使用Java语言处理各种文档格式(如Word、TXT、PPT、PDF、Excel)的核心程序代码。以下是对每种文件类型处理方法的详细...
在IT行业中,对各种文件格式的处理是常见的需求,尤其是对于办公文档如Word、PDF、文本文件(txt)以及电子表格文件(Excel)。本项目针对这些格式提供了完整的读取功能,使得开发者能够轻松地集成到自己的应用中,...
在版本3.6中,它提供了强大的文件检索功能,支持对多种文件类型的搜索,包括PDF、Word、PPT、Excel、TXT、HTML和XML等。这个版本的Lucene已经过封装,使得开发者能够更方便地集成到自己的项目中,实现快速的全文检索...
首先解析PDF,然后逐页复制内容到Word文档结构中。 2. **PDF转PPT** 将PDF转换为PPT可能需要更复杂的处理,因为PPT文件通常包含更多的交互性和动态元素。可以使用Apache POI库创建PowerPoint演示文稿,并将PDF内容...