安装doctotext

1 安装GCC到4.6以上
tar jxf gcc-4.7.0.tar.bz2
cd gcc-4.7.0

编译
./contrib/download_prerequisites
mkdir build
cd build
../configure --disable-checking --disable-multilib --enable-languages=c,c++
make
make install

卸载旧版本
yum remove gcc
yum remove gcc-c++
updatedb

链接到新版本
[plain] view plaincopy
cd /usr/bin
ln -s /usr/local/gcc/bin/gcc gcc
ln -s /usr/local/gcc/bin/g++ g++

添加man帮助
vi /etc/man.config
添加gcc的man路径到配置文件中

MANPATH /usr/local/gcc/share/man
保存退出即可生效,可使用man gcc查看帮助

gcc安装过程错误排查列表
错误:
gnu/stubs-32.h:No such file or directory

解决方法:
yum install glibc-devel.i686

2 编译doctotext源码(只需要编译即可使用)
tar jxf doctotext-4.0-20140202.tar.bz2
cd doctotext
make

doctotext编译过程错误排查列表
错误:
../3rdparty/mimetic/lib/libmimetic.so: undefined reference to `std::__detail::_List_node_base::_M_unhook()@GLIBCXX_3.4.15'
../3rdparty/mimetic/lib/libmimetic.so: undefined reference to `std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)@GLIBCXX_3.4.15'
解决方法:
升级gcc到4.6以上

使用

编译完成后,在doc目录下面会说明实例的html页,下面例举里面的一个程序实例

#include "metadata.h"
#include "plain_text_extractor.h"

#include <iostream>
#include <string>

using namespace doctotext;

int main(int argc, char *argv[])
{
std::string file_name = "test.doc";
PlainTextExtractor extractor;
extractor.setVerboseLogging(true);
Metadata meta;
if (!extractor.extractMetadata(file_name, meta))
return 1;
std::cout << "Autor: " << meta.author() << std::endl;
std::cout << "Last modified by: " << meta.lastModifiedBy() << std::endl;
std::string text;
if (!extractor.processFile(file_name, text))
return 1;
std::cout << text << std::endl;
return 0;
}

编译测试源码

将上面的代码存储为main.cpp,由于doctotext编译完成后的动态库在doctotext/build目录下,并没有安装在系统目录下面,所以main.cpp也需要放在

doctotext/build目录下

编译链接测试源码

gcc main.cpp -L . -I. -ldoctotext

源码中指定了解析的文件名称test.doc,拷贝一个名为test.doc的文件到doctotext/build目录下

运行:

./a.out

即可解析文件

文件解析库doctotext安装和使用的更多相关文章

  1. 文件解析库doctotext源码分析

    doctotext中没有make install选项,make后生成可执行文件 在buile目录下面有.so动态库和头文件,需要的可以从这里面拷贝 build/doctotext就是可执行程序.   ...

  2. Beautiful Soup解析库的安装和使用

    Beautiful Soup是Python的一个HTML或XML的解析库,我们可以用它来方便地从网页中提取数据.它拥有强大的API和多样的解析方式.官方文档:https://www.crummy.co ...

  3. lxml解析库的安装和使用

    一.lxml的安装lxml是Python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高.本节中,我们了解一下lxml的安装方式,这主要从Windows.Linux ...

  4. Pyquery解析库的安装和使用

    Pyquery同样是一个强大的网页解析工具,它提供了和jQuery类似的语法来解析HTML文档,支持CSS选择器,使用非常方便.GitHub:https://github.com/gawel/pyqu ...

  5. ubuntu下的python网页解析库的安装——lxml, Beautiful Soup, pyquery, tesserocr

    lxml 的安装(xpath) pip3 install lxml 可能会缺少以下依赖: sudo apt-get install -y python3-dev build-e ssential li ...

  6. Python3 网络爬虫(请求库的安装)

    Python3 网络爬虫(请求库的安装) 爬虫可以简单分为几步:抓取页面,分析页面和存储数据 在页面爬取的过程中我们需要模拟浏览器向服务器发送请求,所以需要用到一些python库来实现HTTP的请求操 ...

  7. Python爬虫【解析库之pyquery】

    该库跟jQuery的使用方法基本一样  http://pyquery.readthedocs.io/ 官方文档 解析库的安装 pip3 install pyquery 初始化 1.字符串初始化 htm ...

  8. python3解析库pyquery

    pyquery是一个类似jquery的python库,它实现能够在xml文档中进行jQuery查询,pyquery使用lxml解析器进行快速在xml和html文档上操作,它提供了和jQuery类似的语 ...

  9. golang常用库:配置文件解析库-viper使用

    一.viper简介 viper 配置解析库,是由大神 Steve Francia 开发,他在google领导着 golang 的产品开发,他也是 gohugo.io 的创始人之一,命令行解析库 cob ...

随机推荐

  1. python 基础 4.2 高阶函数上

    一.高阶函数 把函数当做参数传递的一种函数   1>map()函数 map函数是python内置的一个高阶函数,它接受一个函数f和一个list,并把list元素以此传递给函数f,然后返回一个函数 ...

  2. 关于 Delphi 中流的使用(7) 压缩与解压缩(TCompressionStream、TDecompressionStream)

    unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For ...

  3. Unix环境高级编程——守护进程记录总结(从基础到实现)

    一.概念及其特征 守护进程是系统中生存期较长的一种进程,常常在系统引导装入时启动,在系统关闭时终止,没有控制终端,在后台运行.守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程 ...

  4. 【BZOJ3997】[TJOI2015]组合数学 最长反链

    [BZOJ3997][TJOI2015]组合数学 Description 给出一个网格图,其中某些格子有财宝,每次从左上角出发,只能向下或右走.问至少走多少次才能将财宝捡完.此对此问题变形,假设每个格 ...

  5. ElasticSearch架构思考(转)

    一个ElasticSearch集群需要多少个节点很难用一种明确的方式回答,但是,我们可以将问题细化成一下几个,以便帮助我们更好的了解,如何去设计ElasticSearch节点的数目: 打算处理多少数据 ...

  6. 九度OJ 1179:阶乘 (循环)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:5149 解决:1523 题目描述: 输入n, 求y1=1!+3!+...m!(m是小于等于n的最大奇数) y2=2!+4!+...p!(p是 ...

  7. Chrome性能分析工具Coverage使用方法

    操作路径如下: 打开控制台-->点击‘Sources’-->ctrl+shift+p-->在命令窗口输入coverage-->在下边新出现的窗口中点击左上角刷新按钮. 界面如下 ...

  8. Java多线程系列 基础篇06 synchronized(同步锁)

    转载 http://www.cnblogs.com/paddix/ 作者:liuxiaopeng http://www.infoq.com/cn/articles/java-se-16-synchro ...

  9. 用ant编译打包时 警告:编码 GBK 的不可映射字符

    原因,参考http://zhidao.baidu.com/question/26901568.html 添加如下的红色一行后编译通过<target name="compile" ...

  10. LVS与Keepalived

    lvs与Nginx区别 LVS的负载能力强,因为其工作方式逻辑非常简单,仅进行请求分发,而且工作在网络的第4层,没有流量,所以其效率不需要有过多的忧虑. LVS基本能支持所有应用,因为工作在第4层,所 ...