您的位置:首页 > 其它

(9)IText读取PDF

2016-04-01 18:53 288 查看
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.parser.PdfTextExtractor;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*
* @author Angela
*/
public class ITextToTxt {

/**提取文本**/
public static void extractTXT(String file){
try {
PdfReader reader = new PdfReader(file);
int pageNum = reader.getNumberOfPages();//获得页数
for (int i=1; i<=pageNum; i++) {// 只能从第1页开始读
System.out.println(PdfTextExtractor.getTextFromPage(reader, i));
}
} catch (IOException ex) {
Logger.getLogger(ITextToTxt.class.getName()).log(Level.SEVERE, null, ex);
}
}

/**
* 提取部分页面文本
* @param file pdf文件路径
* @param startPage 起始页数
* @param endPage 结束页数
*/
public static void extractTXT(String file,int startPage,int endPage){
try {
PdfReader reader = new PdfReader(file);
for (int i=startPage; i<=endPage; i++) {
System.out.println(PdfTextExtractor.getTextFromPage(reader, i));
}
} catch (IOException ex) {
Logger.getLogger(ITextToTxt.class.getName()).log(Level.SEVERE, null, ex);
}
}

/**
* 保存文本内容
* @param file pdf文件路径
* @param savePath 文本保存路径
*/
public static void extractTXT(String file,String savePath){
try {
PdfReader reader = new PdfReader(file);
int pageNum = reader.getNumberOfPages();//获得页数
//创建一个输出流
Writer writer=new OutputStreamWriter(new FileOutputStream(savePath));
for (int i=1; i<=pageNum; i++) {// 只能从第1页开始读
writer.write(PdfTextExtractor.getTextFromPage(reader, i));
}
writer.flush();
writer.close();
} catch (IOException ex) {
Logger.getLogger(ITextToTxt.class.getName()).log(Level.SEVERE, null, ex);
}
}

/**
* 保存部分页面文本
* @param file pdf文件路径
* @param startPage 起始页数
* @param endPage 结束页数
* @param savePath 文本保存路径
*/
public static void extractTXT(String file,int startPage,
int endPage,String savePath){
try {
PdfReader reader = new PdfReader(file);
//创建一个输出流
Writer writer=new OutputStreamWriter(new FileOutputStream(savePath));
for (int i=startPage; i<=endPage; i++) {
System.out.println(PdfTextExtractor.getTextFromPage(reader, i));
}
writer.flush();
writer.close();
} catch (IOException ex) {
Logger.getLogger(ITextToTxt.class.getName()).log(Level.SEVERE, null, ex);
}
}

public static void main(String args[]){
String file="F:\\pdf\\2013\\000608_阳光股份_2013年年度报告(更新后)_1.pdf";
String savePath="E:\\result2.txt";
long startTime=System.currentTimeMillis();
extractTXT(file,savePath);
long endTime=System.currentTimeMillis();
System.out.println("读写所用时间为:"+(endTime-startTime)+"ms");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: