JAVA操作PDF文件

来源:互联网 发布:家庭网络怎么共享文件 编辑:程序博客网 时间:2024/05/19 23:59

需要jar包:pdfbox-app

这只是一个方法 ,传入pdf所在路径

更加详细的

<span style="white-space:pre"></span>public String readPdf(String path) {String filePath = rootDir + Main.conf.getString("path_doc") + path;String docText = "";// pdf文本// 文件输入流,生成文本文件Writer output = null;// 内存中存储的PDF DocumentPDDocument document = null;try {// 不需要保存文本可以将output删除:(带//的)document = PDDocument.load(new File(filePath));String txtPath = filePath.replace(".pdf", ".txt"); //output = new OutputStreamWriter(new FileOutputStream(txtPath));//PDFTextStripper stripper = new PDFTextStripper();stripper.writeText(document, output);//docText = stripper.getText(document);} catch (IOException e) {e.printStackTrace();} finally {try {if (output != null) {// 关闭输出流output.close();}if (document != null) {// 关闭PDF Documentdocument.close();}} catch (IOException e) {e.printStackTrace();}}return docText;}


网上相对完整的代码:

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.pdfbox.pdmodel.PDDocument;import org.pdfbox.util.PDFTextStripper;public class PdfReader {public void readFdf(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 DocumentPDDocument document = null;try {try {// 首先当作一个URL来装载文件,如果得到异常再从本地文件系统//去装载文件URL url = new URL(pdfFile);// 注意参数已不是以前版本中的URL.而是File。document = PDDocument.load(pdfFile);// 获取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装载得到异常则从文件系统装载// 注意参数已不是以前版本中的URL.而是File。document = PDDocument.load(pdfFile);if (pdfFile.length() > 4) {textFile = pdfFile.substring(0, pdfFile.length() - 4) + ".txt";}}// 文件输入流,写入文件倒textFileoutput = 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 Documentdocument.close();}}}public static void main(String[] args) {// TODO Auto-generated method stubPdfReader pdfReader = new PdfReader();try {// 取得E盘下的SpringGuide.pdf的内容pdfReader.readFdf("E:\\SpringGuide.pdf");} catch (Exception e) {e.printStackTrace();}}}


0 0
原创粉丝点击