博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux 下使用poppler qt5
阅读量:6581 次
发布时间:2019-06-24

本文共 1931 字,大约阅读时间需要 6 分钟。

5是的扩展模块,使用qt图形库的开发者对于开发pdf插件来说,这个开源库无疑是非常方便的。本篇介绍如何使用这个库,并且配置开发环境。

1.在poppler官网下载源码,解压到本地目录后切换到这个根目录,打开命令行:

  • $./configure

  • $make

  • $sudo make install

2.编译安装完后,我们用命令行查一下包,并且安装对应的开发库:

  • $apt-cache search poppler-qt5

    图片描述

  • $sudo apt-get install libpoppler-qt5-dev

    3.安装完了我们就可以子qt中使用这个库了,如果不确定有没这个包,可以通过一下命令检查一下:

  • $pkg-config --cflags poppler-qt5

4.在qt 的工程文件中添加一下配置

图片描述

这时候就能使用poppler qt5的库了,它提供了很方便的接口。写一个例子获取pdf文件的第一张截图:

QPixmap FilePreviewIconProvider::getPlainTextPreviewIcon(QString fileUrl){    QFile file(fileUrl);    if(!file.exists())        return QPixmap(QSize(PIXMAP_WIDTH,PIXMAP_HEIGHT));    if(!file.open(QIODevice::ReadOnly))        return QPixmap(QSize(PIXMAP_WIDTH,PIXMAP_HEIGHT));    file.waitForBytesWritten(200);    QString text = file.readAll();    file.close();    QStringList strs = text.split("\n");    QImage img(QSize(PIXMAP_WIDTH,PIXMAP_HEIGHT),QImage::Format_ARGB32);    QPainter painter(&img);    QFont font;    font.setPixelSize(12);    painter.setFont(font);    QPen pen;    pen.setColor(QColor(0,0,0));    painter.setPen(pen);    int counter = 0;    for(auto line : strs){        QString str;        QStringList subStrs;        for(int i = 0;i
isLocked())){ delete document; qDebug()<<"file reading error...."; return QPixmap(QSize(PIXMAP_WIDTH,PIXMAP_HEIGHT)); } qDebug()<<"pdf document read successfully!"; if(document == 0){ qDebug()<<"pdf page is null"; return QPixmap(QSize(PIXMAP_WIDTH,PIXMAP_HEIGHT)); } 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()); if(img.isNull()){ qDebug()<<"render error"; return QPixmap(QSize(PIXMAP_WIDTH,PIXMAP_HEIGHT)); } img = img.scaled(QSize(PIXMAP_WIDTH,PIXMAP_HEIGHT),Qt::KeepAspectRatio,Qt::SmoothTransformation); delete pdfPage; return QPixmap::fromImage(img);}

图片描述

转载地址:http://qtino.baihongyu.com/

你可能感兴趣的文章
关掉firefox(火狐)和palemoon地址栏自动加www.前缀功能【转】
查看>>
hdu 4300 Clairewd’s message(KMP)
查看>>
burp suite 使用教程详解(外文翻译转)
查看>>
Python循环
查看>>
Flume研究心得
查看>>
概要文件的创建
查看>>
虚拟域名设置步骤
查看>>
Oracle的substr函数简单用法
查看>>
knockout.js模板绑定之利用Underscore.js模板引擎示例
查看>>
马婕 2014MBA专硕考试报刊选读 5 朱令案悬而未决引起全社会的关注(转)
查看>>
【iOS开发必备指南合集】申请企业级IDP、真机调试、游戏接入GameCenter 指南(实现仿官方的成就提示)、游戏接入OpenFeint指南;...
查看>>
SVN OPS发布总结
查看>>
二维数组旋转45度
查看>>
三种客户端访问wcf服务端的方法 C#
查看>>
c# WebBrowser获取cookie
查看>>
【流媒体】UPnP的工作过程
查看>>
JAVA的堆于栈
查看>>
每日英语:South India's Streetside Coffee Culture
查看>>
你可能不知道UED和UCD
查看>>
利用IFormattable接口自动参数化Sql语句
查看>>