centos 7下 poppler 安装、使用

一、安装poppler(0.86.1用到了c++11,需要升级支持c++11的编译器,编译时不要有中文路径)

1、下载poppler https://poppler.freedesktop.org/poppler-0.86.1.tar.xz 2020315 最新版本是0.86

2、下载poppler-data https://poppler.freedesktop.org/poppler-data-0.4.9.tar.gz 20200315 最新版本0.4.9

3、由于poppler-86.1 编译需要cmake 3.16以上版本,需要先编译cmake

(1)下载cmake https://cmake.org/download/; 最新版本 3.17;

(2)编译

#mkdir build

#../configure

#make

#make install

4、编译poppler

(1)解压poppler-0.86.1.tar.xz

(2)修改配置项

当前目录下CMakeList.txt

删除151~159,不同的版本的QT添加不同版本的路径

151 #find_package(Qt5Core)

152 #find_package(Qt5Gui)

153 #find_package(Qt5Xml)

154 #find_package(Qt5Widgets)

155 #find_package(Qt5Test)

156 #if (NOT (Qt5Core_FOUND AND Qt5Gui_FOUND AND Qt5Xml_FOUND AND Qt5Widgets_FOUND AND Qt5Test_FOUND))

157 # message("-- Package Qt5Core or Qt5Gui or Qt5Xml or Qt5Widgets or Qt5Test not found")

158 # set(ENABLE_QT5 OFF)

159 #endif()

以下是新增:

include_directories(/opt/Qt5.14.1/5.14.1/gcc_64/include)

include_directories(/opt/Qt5.14.1/5.14.1/gcc_64/include/QtGui)

include_directories(/opt/Qt5.14.1/5.14.1/gcc_64/include/QtCore)

include_directories(/opt/Qt5.14.1/5.14.1/gcc_64/include/QtXml)

include_directories(/opt/Qt5.14.1/5.14.1/gcc_64/include/QtWidgets)

include_directories(/opt/Qt5.14.1/5.14.1/gcc_64/include/QtTest)

 

qt目录下CMakeList.txt

删除4,5行

#- add_subdirectory(tests)

#- add_subdirectory(demos)

(3)安装依赖环境

#yum install freetype-devel fontconfig-devel libjpeg-devel libpng-devel libtiff-devel nss-devel cairo-devel openjpeg2-devel cairo-devel gobject-introspection-devel gtk3-devel lcms2-devel curl-devel -y

编译poppler-data

下载 https://poppler.freedesktop.org/poppler-data-0.4.9.tar.gz

解压

#mkdir build

#cd build

#cmake ..

#make

#make install

(4)编译

#mkdir build

#cd build

#cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=release

编译出错

In file included from /root/worksapce/poppler/poppler-0.67.0/poppler/SignatureInfo.cc:22:0:

/usr/include/nss3/hasht.h:48:29: 错误:‘PRBool’未声明

void (*destroy)(void *, PRBool);

解决如下:

在hasht.h包含

#include<prtypes.h>

//PRBool 是在 prtypes.h 中定义的

#make

#make install

 

poppler-qt5.pro 拷贝到 poppler-0.67.0/qt5目录下

编译工程release,生成poppler-qt5.so,poppler-qt5.so.1,poppler-qt5.so.1.0,poppler-qt5.so.1.0.0

拷贝到/usr/local/lib64目录下

 

二、使用库

包含库

LIBS += -L/usr/local/lib64 -lpoppler-qt5

 

#include <poppler/qt5/poppler-qt5.h>

 

eg.

QString fileUrl = "./1.pdf";

Poppler::Document* document = Poppler::Document::load(fileUrl);

Poppler::Page* pdfPage = document->page(0); //Document start at page 0

//QImage img = pdfPage->renderToImage(72,72,0,0,pdfPage->pageSize().width(),pdfPage->pageSize().height());

QImage img = pdfPage->renderToImage(72*20,72*20,-1,-1,-1,-1);

int iWidth = img.width();

int iHeight = img.height();

img.save("./1.png");

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值