【问题标题】:How to open and display a PDF file using Qt/C++?如何使用 Qt/C++ 打开和显示 PDF 文件?
【发布时间】:2011-06-07 07:30:24
【问题描述】:

我正在尝试使用 Qt 打开和阅读 PDF 文件,但没有具体的方法。

【问题讨论】:

标签: c++ qt pdf qt4


【解决方案1】:

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

这是我对 Qt5 和 WebEngine 的想法的实现:https://github.com/Archie3d/qpdf

【讨论】:

  • 你能举一个最小的例子来说明如何将这两者结合起来使其工作吗?
  • @AttitudeMonger,我已经用实现链接更新了答案
  • @Archie,你能解释一下你的项目应该如何编译和运行吗?
【解决方案2】:

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

【讨论】:

  • poppler 在 GPL2 许可下使用 Xpdf。我喜欢 GPL,但请注意不要在专有软件中使用它。
【解决方案3】:

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

Here,页面上写着:

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

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

【讨论】:

    【解决方案4】:

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

    【讨论】:

    • 链接已损坏。
    【解决方案5】:

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

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

    【讨论】:

      【解决方案6】:

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

      【讨论】:

        【解决方案7】:

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

        【讨论】:

          【解决方案8】:

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

          从 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

          【讨论】:

            【解决方案9】:

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

            您可能想查看this 链接,该链接描述了如何使用 ActiveX 在 Qt/C++ 中读取 PDF 文件,并有一个可下载的示例项目。

            【讨论】:

            • 虽然链接可能会回答问题,但链接会发生变化,因此 Stack Overflow 不希望依赖它们。 It would be better 在此处包含答案的基本部分并提供链接以供参考。
            • 答案的关键部分在标题中。您可以使用 ActiveX 在 Qt 中打开 PDF 文件。该链接包含一个可下载的示例项目。
            猜你喜欢
            • 1970-01-01
            • 2019-07-27
            • 1970-01-01
            • 2016-10-12
            • 2012-01-05
            • 2015-07-12
            • 1970-01-01
            • 1970-01-01
            • 2017-06-20
            相关资源
            最近更新 更多