使用PDFBox处理PDF文档

 

首先导入jar包 pdfbox-app-1.6.0.jar  fontbox-1.6.0.jar pdfbox-1.6.0.jar  和 jempbox-1.6.0.jar

同时还要导入lucene的3.0包  lucene-core-3.0.0.jar

下载网址  http://pdfbox.apache.org/download.html 

 

 

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.MalformedURLException;
import java.net.URL;

import org.apache.lucene.document.Document;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.util.PDFTextStripper;


public class PdfLuceneTest {
 public static void main(String[] args) {
  try {
  geText("D:\\test\\small\\1.pdf");
 } catch (Exception e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 }
 public static void geText(String file) throws Exception {
  // 是否排序
    boolean sort = false;
  // pdf文件名
    String pdfFile = file;
  // 输入文本文件名称
    String textFile = null;
  // 编码方式
    String encoding = "UTF-8";
  // 开始提取页数
    int startPage = 1;
  // 结束提取页数
    int endPage = Integer.MAX_VALUE;
  // 文件输入流,生成文本文件
    Writer output = null;
  // 内存中存储的PDF Document
    PDDocument document = null;
  try {
       try {
          // 首先当作一个URL来装载文件,如果得到异常再从本地文件系统//去装载文件
          URL url = new URL(pdfFile);
          document = PDDocument.load(url);
          // 获取PDF的文件名
          String fileName = url.getFile();
        
  // 以原来PDF的名称来命名新产生的txt文件
          if (fileName.length() > 4) {
             File outputFile = new File(fileName.substring(0, fileName.length() - 4) + ".txt");
             textFile = outputFile.getName();
          }
       } catch (MalformedURLException e) {
        
  // 如果作为URL装载得到异常则从文件系统装载
          document = PDDocument.load(pdfFile);
          if (pdfFile.length() > 4) {
             textFile = pdfFile.substring(0, pdfFile.length() - 4) + ".txt";
          }
       }
       // 文件输入流,写入文件倒textFile
       output = new OutputStreamWriter(new FileOutputStream(textFile), encoding);
       // PDFTextStripper来提取文本
       PDFTextStripper stripper = null;
       stripper = new PDFTextStripper();
  // 设置是否排序
       stripper.setSortByPosition(sort);
  // 设置起始页
       stripper.setStartPage(startPage);
  // 设置结束页
       stripper.setEndPage(endPage);
  // 调用PDFTextStripper的writeText提取并输出文本
       stripper.writeText(document, output);
    } finally {
       if (output != null) {
          // 关闭输出流
          output.close();
       }
       if (document != null) {
          // 关闭PDF Document
          document.close();
       }
    }
 }
}

阅读更多
个人分类: java lucene pdf
想对作者说点什么? 我来说一句

java使用pdfbox打印PDF

2018年01月09日 3.68MB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭