java读取pdf文件的时候出现异常

java读取pdf文件的时候出现异常,第1张

当时想把pdf中的文字读取成txt文件,方便我的手机阅读,写了以下代码,解决了这个小问题

所需要的包:PDFBox-073zip 解压文件夹下:external下的全部,lib文件下的PDFBox-073jar

注意:只能读取文本格式的pdf,如果pdf为格式的,本程序不能使用!

程序介绍:本程序将文本格式pdf中的文字读取出来,存入与pdf文件同文件名的TXT文本文档。

支持中文,但是在某些文字上会出现乱码

package comsmall;

import javaioFile;

import javaioFileOutputStream;

import javaioOutputStreamWriter;

import javaioWriter;

import javanetMalformedURLException;

import javanetURL;

import orgpdfboxpdmodelPDDocument;

import orgpdfboxutilPDFTextStripper;

public class Pdfreader {

public void readFdf(String file) throws Exception {

// 是否排序

boolean sort = false;

// pdf文件名

String pdfFile = file;

// 输入文本文件名称

String textFile = null;

// 编码方式

String encoding = "GB2312";

// 开始提取页数

int startPage = 1;

// 结束提取页数

int endPage = IntegerMAX_VALUE;

// 文件输入流,生成文本文件

Writer output = null;

// 内存中存储的PDF Document

PDDocument document = null;

try {

try {

// 首先当作一个URL来装载文件,如果得到异常再从本地文件系统//去装载文件

URL url = new URL(pdfFile); //注意参数已不是以前版本中的URL而是File。

document = PDDocumentload(pdfFile);

// 获取PDF的文件名

String fileName = urlgetFile();

// 以原来PDF的名称来命名新产生的txt文件

if (fileNamelength() > 4) {

File outputFile = new File(fileNamesubstring(0, fileName

length() - 4)

+ "txt");

textFile = outputFilegetName();

}

} catch (MalformedURLException e) {

// 如果作为URL装载得到异常则从文件系统装载 //注意参数已不是以前版本中的URL而是File。

document = PDDocumentload(pdfFile);

if (pdfFilelength() > 4) { textFile = pdfFilesubstring(0, pdfFilelength() - 4)

+ "txt";

}

}

// 文件输入流,写入文件倒textFile

output = new OutputStreamWriter(new FileOutputStream(textFile),

encoding);

// PDFTextStripper来提取文本

PDFTextStripper stripper = null;

stripper = new PDFTextStripper();

// 设置是否排序

strippersetSortByPosition(sort);

// 设置起始页

strippersetStartPage(startPage);

// 设置结束页

Systemoutprint(strippergetText(document));

strippersetEndPage(endPage);

// 调用PDFTextStripper的writeText提取并输出文本

stripperwriteText(document, output);

} finally {

if (output != null) {

// 关闭输出流

outputclose();

}

if (document != null) {

// 关闭PDF Document

documentclose();

}

}

} /

@param args

/

public static void main(String[] args) {

Pdfreader pdfReader = new Pdfreader();

try {

// 读取pdf文件

pdfReaderreadFdf("d:\\2\\Dpdf");

} catch (Exception e) {

eprintStackTrace();

}

}

}

>import javaioFile;    

 import javaioFileOutputStream;    

 import javaioOutputStreamWriter;    

 import javaioWriter;    

 import javanetMalformedURLException;    

 import javanetURL;   

import orgapachepdfboxpdmodelPDDocument;

 import orgapachepdfboxutilPDFTextStripper;

 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 = IntegerMAX_VALUE;    

   // 文件输入流,生成文本文件    

   Writer output = null;    

   // 内存中存储的PDF Document    

   PDDocument document = null;    

   try {    

    try {    

     // 首先当作一个URL来装载文件,如果得到异常再从本地文件系统//去装载文件    

     URL url = new URL(pdfFile);    

    //注意参数已不是以前版本中的URL而是File。    

     document = PDDocumentload(pdfFile);    

     // 获取PDF的文件名    

     String fileName = urlgetFile();    

     // 以原来PDF的名称来命名新产生的txt文件    

     if (fileNamelength() > 4) {    

      File outputFile = new File(fileNamesubstring(0, fileName    

        length() - 4)    

        + "txt");    

      textFile = outputFilegetName();    

     }    

    } catch (MalformedURLException e) {    

     // 如果作为URL装载得到异常则从文件系统装载    

    //注意参数已不是以前版本中的URL而是File。    

     document = PDDocumentload(pdfFile);    

     if (pdfFilelength() > 4) {    

      textFile = pdfFilesubstring(0, pdfFilelength() - 4)    

        + "txt";    

     }    

    }    

    // 文件输入流,写入文件倒textFile    

    output = new OutputStreamWriter(new FileOutputStream(textFile),    

      encoding);    

    // PDFTextStripper来提取文本    

    PDFTextStripper stripper = null;    

    stripper = new PDFTextStripper();    

    // 设置是否排序    

    strippersetSortByPosition(sort);    

    // 设置起始页    

    strippersetStartPage(startPage);    

    // 设置结束页    

    strippersetEndPage(endPage);    

    // 调用PDFTextStripper的writeText提取并输出文本    

    stripperwriteText(document, output);    

   } finally {    

    if (output != null) {    

     // 关闭输出流    

     outputclose();    

    }    

    if (document != null) {    

     // 关闭PDF Document    

     documentclose();    

    }    

   }    

  }    

  /   

    @param args   

   /   

  public static void main(String[] args) {    

   // TODO Auto-generated method stub    

   PdfReader pdfReader = new PdfReader();    

   try {    

    // 取得E盘下的SpringGuidepdf的内容    

    pdfReaderreadFdf("d:\\bpdf");    

   } catch (Exception e) {    

    eprintStackTrace();    

   }    

  }    

 }

以上就是关于java读取pdf文件的时候出现异常全部的内容,包括:java读取pdf文件的时候出现异常、java解析pdf文件,求大神提供代码,请注意是java语言的、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10122712.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存