qt显示pdf——poppler-qt问题

一尺丈量 2015-12-10 05:32:33
大家有没有用过poppler库呀,最近在用poppler-qt5库显示pdf文档,但问题挺严重的。
其实使用poppler-qt库显示pdf文档比较简单,主要代码为:

Poppler::Document *doc;
QString path = QFileDialog::getOpenFileName(&w, QString("打开一个文本"), ".", QString("(*.pdf)"));
doc = Poppler::Document::load(path);

int index = 0;
Poppler::Page *pdfPage = doc->page(index);
if (pdfPage == 0)
{
return 1;
}

//doc->setRenderHint(QPainter::SmoothPixmapTransform);
int w1 = 1180;
QImage image = pdfPage->renderToImage(200, 200, -1, -1, -1, -1);

QPixmap pix = QPixmap::fromImage(image);

上面的代码是将pdf文件第一页渲染为一个图片,然后就将pix显示在桌面上。
但问题是语句:
QImage image = pdfPage->renderToImage(200, 200, -1, -1, -1, -1);

这里是生成水平和垂直分辨率都为200的图片,但这样整个图片就会变得非常之大。在我的电脑上生成的一张图片是:980KB,生成的图片为:

大小为:1654X2339
但如果将分辨率改小点,如72,那么整个图片将会是下面这个样子的:

大小为:595X843
整个页面会变得非常模糊。
请问这是什么原因呢?这个库非常有名,不应该是这样才对的,是我缺少了哪个步骤吗?但官方的教程也是这样的。。。。

一般情况下分辨率为72的图像已经是非常清晰的了,但这里设置为200时,只是图片变大了,但清晰度肯定还达不好72分辨率的。
...全文
1698 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
浮夸半生 2016-05-09
  • 打赏
  • 举报
回复 2
this->doc->setRenderHint(Poppler::Document::TextAntialiasing);//画面清晰
SingleW_ 2016-03-28
  • 打赏
  • 举报
回复
楼主PDF阅读器是用哪个库实现的,在哪下载?
福州司马懿 2016-03-08
  • 打赏
  • 举报
回复
求教啊 qt5怎么用poppler-qt5.dll.a 我在qt项目中导入后还是无法运行啊
一尺丈量 2015-12-25
  • 打赏
  • 举报
回复
引用 4 楼 d007letian 的回复:
楼主,您好,我最近也要写这个。请问poppler在windows7 64位+qt5+vs2013的条件下,怎么编译使用啊? 我一直弄不出来。。。 用kde试过,但是只能编译出来poppler-qt4,而且在qt5里还不能使用(出现错误时:无法打开包括文件:poppler-qt4.h) 求指导!
我也不知道怎么编译,我已经放弃poppler了,主要是其性能原因,已经改用mupdf.
007Detective 2015-12-12
  • 打赏
  • 举报
回复
楼主,您好,我最近也要写这个。请问poppler在windows7 64位+qt5+vs2013的条件下,怎么编译使用啊? 我一直弄不出来。。。 用kde试过,但是只能编译出来poppler-qt4,而且在qt5里还不能使用(出现错误时:无法打开包括文件:poppler-qt4.h) 求指导!
冷静忍耐 2015-12-11
  • 打赏
  • 举报
回复
引用 2 楼 u010155023 的回复:
[quote=引用 1 楼 u013466477 的回复:] 没用过,不过qt自带的QPdfWriter就挺好用
我不是写PDF呀,我是希望用QT开发一个PDF阅读器!。。。人家用mupdf和popper开发得挺不错的,就是源代码看不懂。几百个文件。。。 mupdf和poppler的文档几乎是没有,API那么多,难道要一个一个猜这些API都是干什么用的???[/quote] 有文档的,是英文的,应该没有中文文档。参考这个,类都有说明 http://people.freedesktop.org/~aacid/docs/qt5/annotated.html
一尺丈量 2015-12-10
  • 打赏
  • 举报
回复
引用 1 楼 u013466477 的回复:
没用过,不过qt自带的QPdfWriter就挺好用
我不是写PDF呀,我是希望用QT开发一个PDF阅读器!。。。人家用mupdf和popper开发得挺不错的,就是源代码看不懂。几百个文件。。。 mupdf和poppler的文档几乎是没有,API那么多,难道要一个一个猜这些API都是干什么用的???
冷静忍耐 2015-12-10
  • 打赏
  • 举报
回复
没用过,不过qt自带的QPdfWriter就挺好用

16,817

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧