安装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. 补充ajax分页的代码

    1.主页代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...

  2. div+css清除浮动代码

    <style type="text/css"> .div1{ background:#000080; border:1px solid red;} .div2{ bac ...

  3. LeetCode:删除链表中的节点【203】

    LeetCode:删除链表中的节点[203] 题目描述 删除链表中等于给定值 val 的所有节点. 示例: 输入: 1->2->6->3->4->5->6, val ...

  4. iOS 9 Safari广告拦截插件

    相对于谷歌对广告拦截的禁止,苹果与之态度截然相反,继Mac版Safari加入广告拦截工具之后,即将到来的iOS9对Safari也引入了内容拦截插件-Content Blocker,并且开发者可以使用最 ...

  5. Java类的加载与生命周期

    一.概要: 类的生命周期从类的 加载.连接.初始化 开始,到类的 卸载结束: 二.几个阶段: 加载:查找并加载类的二进制数据.(把类的.class文件的二进制数据读入内存,存放在运行时数据区的方法区: ...

  6. leetcode 859. Buddy Strings

    Given two strings A and B of lowercase letters, return true if and only if we can swap two letters i ...

  7. SDUT OJ 之 连通分量个数 (dfs)

    数据结构实验:连通分量个数 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述  在无向图中,如果从顶点vi到顶点vj有路径,则称vi ...

  8. JAVA- 成员变量与局部变量的区别

    成员变量与局部变量的区别 成员变量是定义在方法之外,类之内的局部变量是定义在方法之内的. 作用上的区别: 1.成员变量的作用是用于描述一类事物的公共属性的. 2.局部变量的作用就是提供一个变量给方法内 ...

  9. python的上下文管理器

    直接上代码: f = open('123.txt','w') try: f.write('hello world') except Exception: pass finally: f.close() ...

  10. java 创建 HMAC 签名

    ava 创建 HMAC 签名 psd素材 1. []ComputopTest.java package com.javaonly.hmac.test; import java.io.IOExcepti ...