如何使用Qt / C ++打开和显示PDF文件?

时间:2011-06-07 07:30:25

标签: c++ qt pdf qt4

我正在尝试使用Qt打开并阅读PDF文件,但没有具体的方法可以做到这一点。

9 个答案:

答案 0 :(得分:8)

我知道这个主题有点旧,但...... 我找到了一种使用pdf.js(http://mozilla.github.com/pdf.js/)通过QtWebKit在Qt中呈现PDF的非常简单的方法。

以下是我对Qt5和WebEngine的想法的认识:https://github.com/Archie3d/qpdf

答案 1 :(得分:5)

据我所知,Qt本身不包括PDF阅读/渲染功能。您可能希望查看具有Qt绑定的libpoppler

答案 2 :(得分:3)

我在qt-project.org - “处理PDF - Qt项目”中发现了这篇非常有趣的文章 本页讨论在Qt应用程序中处理PDF文档的各种可用选项。该页面并未准确显示如何“打开并显示现有PDF文档”,但它可以帮助您从中解释所有有用的内容。

Here,页面上写着:

  

用于将现有PDF文档中的页面或元素渲染为图像   文件或内存中的像素图(例如用于缩略图生成或   实现自定义查看器),可以使用第三方库(for   例如:poppler-qt4(freedesktop.org)和muPDF(mupdf.com))。

     

或者,可以将任务委派给现有命令行   工具(如poppler-utils(freedesktop.org)和muPDF(mupdf.com))。

答案 3 :(得分:2)

您可以使用PdfViewer这是一款仅使用Qt的轻量级PDF查看器。它包含一个PdfView小部件,可以轻松嵌入到您的应用程序中。

答案 4 :(得分:0)

简单回答:Qt API不支持它。

其他答案:您可以编写代码,我建议您查看使用Ghostscript的this Qt application

答案 5 :(得分:0)

您可能希望使用okular进行pdf处理。

答案 6 :(得分:0)

我知道这是一篇过时的文章,但是我在最初的搜索过程中偶然发现了那篇文章,所以我想我会从使用的解决方案中发布一些文档。

自Qt 5.10起

检出QPdfDocument类。此类可以打开PDF,您可以使用render函数将页面呈现为图像。我使用QQuickPaintedItem然后“绘制”此图像,但是我确信还有更多方法可以处理QImage输出。

Qt 5.10之前的版本

我使用libpoppler进行了非常相似的过程。 #include <poppler/qt5/poppler-qt5.h> 使用Poppler::Document类加载和处理整个PDF文档,并查看Poppler::Page::renderToImage函数以将页面输出为QImage

答案 7 :(得分:-1)

我发现打开pdf的最好方法是在Qt中使用QProcess。

答案 8 :(得分:-2)

Qt不支持开箱即用的PDF文件,在许多方法中,您可以使用Adobe的PDF Reader ActiveX对象和QAxObject。

您可能需要查看this链接,其中介绍了如何使用ActiveX读取Qt / C ++中的PDF文件,并且有一个可下载的示例项目。