matlab pdf 转txt,pdf转中文txt - osc_xgk2otgu的个人空间 - OSCHINA - 中文开源技术交流社区...

最近项目需要实现根据关键字搜索pdf内容,实现思路就是提取pdf文本,然后进行索引。

工具上选择:

IText 4.16之后采用agpl License,不能用作商用,而且转换中文会有乱码问题,

pdfsharp 采用MIT License,权限上没有问题,但是转换中文也会有乱码,

最后决定采用xpdf.

需要下载对应的xpdf包,本人采用的windows x64 版本

此外还要下载中文字符集包:简体中文字符集

包准备工作如下:

在合适目录创建xpdf文件夹

将下载的包解压并将bin64文件夹下的pdftotext.exe 拷贝到xpdf文件夹下

解压中文字符集后进入文件夹继续解压xpdf-chinese-simplified.tar,在解压后的xpdf-chinese-simplified文件夹拷贝到xpdf下

在xpdf文件夹下创建xpdf的字符加载文件xpdfrc

打开xpdf文件夹下的子文件chinese-simplified里的add-to-xpdfrc,将里面内容copy到xpdfrc

将xpdf文件夹copy到项目合适位置实现功能,这里只演示单个文件的转换工作,本人是将xpdf访问asp.mvc启动工程的根目录下进行测试的(文件路径有空格一定要加双引号)

1 public ActionResult Search(stringkeyword)2 {3 var rooPath = Server.MapPath("~/");4 ProcessStartInfo startInfo = newProcessStartInfo5 {6 UseShellExecute = false,7 WindowStyle =ProcessWindowStyle.Normal,8 RedirectStandardInput = true,9 RedirectStandardOutput = true,10 RedirectStandardError = true,11 CreateNoWindow = false,12 WorkingDirectory = string.Format("{0}xpdf", rooPath),13 //FileName = string.Format("{0}xpdf\\pdftotext.exe", rooPath)

14 FileName ="cmd.exe"

15 };16 //pdftotext.exe -layout -enc GBK 你不知道的JavaScript(下卷).pdf

17 var arguments = string.Format("/C pdftotext.exe -layout -enc GBK \"{1}\" \"{2}\"", rooPath, rooPath + @"xpdf\1.pdf", rooPath + @"xpdf\JavaScript.txt");18 //var arguments = string.Format(@"{0}1.pdf", rooPath);

19 startInfo.Arguments =arguments;20 var ss = string.Empty;21

22 using (Process process =Process.Start(startInfo))23 {24

25 process.OutputDataReceived += new DataReceivedEventHandler((object sender, DataReceivedEventArgs e) =>

26 {27 ss +=e.Data;28 });29 process.BeginOutputReadLine();30 using (var error =process.StandardError)31 {32 ss +=error.ReadToEnd();33 }34 //等待退出

35 process.WaitForExit();36 }37

38 returnJson(ss, JsonRequestBehavior.AllowGet);39 }

error 可能会有报字体的错误,但不影响转换,可以忽略:

Syntax Error: Unknown character collection 'DYNA-HK1'

Syntax Error: Unknown character collection 'DYNA-HK1'

下面再附上工程目录:

912b4f32127ccefde80e123faa8d53bd.png

原文出处:https://www.cnblogs.com/xnguo/p/10703157.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值