lucene入门-使用pdfbox解析中文PDF

很多人使用 PDFBOX无法解析中文PDF,其实是在编程时没有指定字符集导致的,指定字符集后,pdfbox是完全可以解析中文PDF的

下载JAR文件

下载pdfbox

http://incubator.apache.org/pdfbox/

 下载相关的jar

http://commons.apache.org/downloads/download_logging.cgi

引入external下的所有包

笔者BLOG地址:http://blog.163.com/sukerl@126/

以下是JAVA代码,注意红色部分指定了字符集:

package extract;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;


import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.util.*;

public class ExtractorPDF {
   
 public static String getText(String file){
  String s="";
  String pdffile=file;
  PDDocument pdfdoc=null;
  try {
   pdfdoc=PDDocument.load(pdffile);
   PDFTextStripper stripper=new PDFTextStripper("GBK");
   s=stripper.getText(pdfdoc);   
   
  } catch (IOException e) {   
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  finally{
   try {
      if (pdfdoc!=null){  
     pdfdoc.close();
    }
   }catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
   }       
  } 
  return s;     
    }
 public static void toTextFile(String doc,String filename) throws Exception{
  String pdffile=doc;
  PDDocument pdfdoc=null;
  try {
   pdfdoc=PDDocument.load(pdffile);
   
   PDFTextStripper stripper=new PDFTextStripper("GBK");
   PrintWriter pw=new PrintWriter(new FileWriter(filename));
   stripper.writeText(pdfdoc, pw);
   
  } catch (IOException e) {   
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  finally{
   try {
      if (pdfdoc!=null){  
     pdfdoc.close();
    }
   }catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
   }       
  } 
  
 }
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  try {
   String sc=getText("D:/workspace/testsearch2/htmls/xxxx.pdf");   
   System.out.print(sc);
   toTextFile("D:/workspace/testsearch2/htmls/xxxx.pdf","D:/workspace/testsearch2/htmls/xxxx.txt");
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
 }

}

 

 

 

解析效果如下:

光盘使用指南光盘使用指南光盘使用指南光盘使用指南
      北京希望电子出版社出版
********************************************************
提示
    本张光盘采用了 Autorun 技术 也就是您只要把本光盘插入
到您的光驱中 就会自动启动 Acrobat Reader 并打开本书电子版
在我的电脑中 直接双击该光盘会再次启动阅读器
    若自动运行未实现 请进入 /Rddirect/reader 文件夹 直接
双击 ACRORD32.EXE 启动 Acrobat Reader 再打开 /PDF 文件夹中
的 Zong.pdf 即可 若想直接双击打开 zong.pdf, 请先按下文所述
安装 Acrobat Reader 之后使用
    如要查看光盘中的文件 请用鼠标右健单击光盘盘符 在出
现的快捷菜单中单击 打开 命令即可打开光盘 或在 Windows
资源管理器中单击光盘盘符 则可直接打开该光盘
********************************************************
    欢迎使用北京希望电子出版社开发制作 出品的电子图书
本光盘利用美国 Adobe 公司开发的 Acrobat 4.0 中文版制作
********************************************************
    电子图书具有存储容量大 占书架空间小 易于查询内容和
可加多媒体信息等特点 所以 电子图书在发达国家发展很快
且深受读者欢迎 本书从读者利益出发 将电子版与传统方式结
合起来 让读者取其所长 用得称心
********************************************************
系统需求
    
- i486 或基于  Pentium 处理器的个人计算机
- Microsoft Windows 95 Windows 98 或  Windows NT 4.0
  带有  Service Pack 3 或更新版本
- Windows 95 和  Windows 98 要求  8 MB RAM 建议用 16 MB
- Windows NT 要求 16 MB RAM 建议用  24 MB
- 10 MB 可用硬盘空间
- 为亚洲字体准备额外的  50 MB 硬盘空间  (可选 )
- 800X600 分辨率 16 位色以上显示
- 倍速以上光驱
- 声卡 音箱 (若要观看本盘中多媒体演示 教学部分
- 鼠标
    
********************************************************
本光盘目录结构及操作使用
    1 /H3D 文件夹为 Hope 3D 希望三维设计系统普通版 多
媒体演示教学程序 单击其中的 Hope3D.exe 文件即可运行 有关
系统需求及使用方法 请参考该文件夹下的 readme.txt 文件
    2 /Ps 文件夹为大型情景化 Photoshop 教学片 照相馆的故
事 的演示动画 直接双击其中的 Psdemo.exe 文件即可运行该演
示动画 有关系统需求及如何使用 请参考该文件夹中的
Readme.txt 文件
    3 /RDinstall 文件夹为 Acrobat Reader 安装程序
    4 /RDdirect 文件夹为 Acrobat Reader 可直接运行版本
    5 为阅读此格式的文件 请您先安装 Acrobat Reader 阅读
器 本盘提供了其两个版本的程序
    在 /RDdirect/reader 目录下为可直接运行版本 直接双击
ACRORD32.EXE 即可启用
    在 /RDinstall 目录下为安装版本 需双击 ACRD4CHS.EXE 进行
安装后使用
    6. /PDF 文件夹中的 Zong.pdf 为本书电子版 您可用
Acrobat Reader 阅读
********************************************************
出版社联系信息
    热线电话 (010)62633308  62633309  62562329 62541992
    传     真 (010)62633308  62579874
    技术支持 (010)82624263  62613322-315
    地     址 北京海淀区海淀路 82 号 (海淀剧院北侧 )
    邮政地址 北京中关村 083 信箱
    邮     编 100080
    网上书店 www.bhp.com.cn
    E-mail  lwm@hope.com.cn

载图如下:

lucene入门-使用pdfbox解析中文PDF - 深未来技术 - 深未来计算机技术交流

 

加编码参数说明:

PDFTextStripper

public PDFTextStripper(String encoding)
                throws IOException
Instantiate a new PDFTextStripper object. This object will load properties from Resources/PDFTextStripper.properties and will apply encoding-specific conversions to the output text.

 

Parameters:
DE>encodingDE> - The encoding that the output will be written in.
Throws:
DE> IOExceptionDE> - If there is an error reading the properties.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值