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
- java操作pdf文件
- JAVA操作PDF文件
- Java操作pdf文件
- java操作pdf文件
- JAVA操作PDF文件
- java操作Excel、PDF文件
- java操作Excel、PDF文件
- java操作Excel、PDF文件
- java操作Excel、PDF文件
- java操作Excel、PDF文件
- java操作Excel、PDF文件
- java操作Excel、PDF文件
- java操作Excel、PDF文件
- java操作Excel、PDF文件
- java操作Excel、PDF文件
- java操作Excel、PDF文件
- java操作Excel、PDF文件(转)
- [转载]java操作Excel、PDF文件
- WINSERVER 2003申请证书
- 简单新闻客户端(3)---网络数据请求,json包解析
- Java学习笔记(二十五):mac配置java_home和配置$path
- Linux权限管理之基本权限
- win server 2003申请证书
- JAVA操作PDF文件
- 全面解析Java注解
- typedef
- nmap使用简介
- 【HDU5931 2016CCPC东北地区大学生程序设计竞赛 - 重现赛 J】【线性规划 乱搞】Mission Possible 购买护甲和回复力和速度使得最小成本穿越D距离
- C++入门
- 122. Best Time to Buy and Sell Stock II
- C++类
- 如何区分本地用户和域用户?