【发布时间】:2011-06-07 07:30:24
【问题描述】:
我正在尝试使用 Qt 打开和阅读 PDF 文件,但没有具体的方法。
【问题讨论】:
-
在某些时候这可能会被添加到 Qt WebEngine - 请参阅bugreports.qt.io/browse/QTBUG-50556
我正在尝试使用 Qt 打开和阅读 PDF 文件,但没有具体的方法。
【问题讨论】:
我知道这个主题有点老了,但是... 我找到了一种非常简单的方法,可以通过 QtWebKit 使用 pdf.js (http://mozilla.github.com/pdf.js/) 在 Qt 中呈现 PDF。
这是我对 Qt5 和 WebEngine 的想法的实现:https://github.com/Archie3d/qpdf
【讨论】:
据我所知,Qt 本身不包括 PDF 阅读/渲染功能。您可能想查看具有 Qt 绑定的 libpoppler。
【讨论】:
我在qt-project.org 上发现了这篇非常有趣的文章 - “处理 PDF - Qt 项目”。
本页讨论了在 Qt 应用程序中处理 PDF 文档的各种可用选项。该页面并未完全显示如何“打开和显示现有 PDF 文档”,但它可以帮助您从那里解释的所有内容中推断出一些有用的东西。
Here,页面上写着:
用于将现有 PDF 文档中的页面或元素渲染为图像 文件或内存中的像素图(例如,用于生成缩略图或 实现自定义查看器),可以使用第三方库(用于 例如:poppler-qt4 (freedesktop.org) 和 muPDF (mupdf.com))。
或者,可以将任务委托给现有的命令行 工具(如 poppler-utils (freedesktop.org) 和 muPDF (mupdf.com))。
【讨论】:
您可以使用PdfViewer,这是一个仅使用 Qt 的轻量级 PDF 查看器。它包含一个PdfView 小部件,可以轻松嵌入到您的应用程序中。
【讨论】:
简单的回答:Qt API 不支持它。
其他答案:你可以编码,我建议你看看使用Ghostscript的this Qt application
【讨论】:
我发现打开 pdf 的最佳方法是在 Qt 中使用 QProcess。
【讨论】:
您可能希望使用okular 进行pdf 处理。
【讨论】:
我知道这是一篇旧帖子,但我在最初的搜索中偶然发现了它,所以我想我会从我使用的解决方案中发布一些文档。
查看QPdfDocument 类。此类可以打开 PDF,您可以使用 render 函数将页面呈现为图像。我使用QQuickPaintedItem 来“绘制”这张图片,但我相信还有更多方法可以处理QImage 输出。
我用libpoppler 做了一个非常相似的过程。
#include <poppler/qt5/poppler-qt5.h>
使用Poppler::Document类加载和处理整个PDF文档,查看Poppler::Page::renderToImage函数将页面输出为QImage。
【讨论】:
Qt 不支持开箱即用地读取 PDF 文件,在许多方法中,您可以使用 Adobe 的 PDF Reader ActiveX 对象和 QAxObject。
您可能想查看this 链接,该链接描述了如何使用 ActiveX 在 Qt/C++ 中读取 PDF 文件,并有一个可下载的示例项目。
【讨论】: