繁体   English   中英

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

[英]How to open and display a PDF file using Qt/C++?

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

I know the subject is a bit old, but... I found a really simple way to render PDFs in Qt via QtWebKit using pdf.js ( http://mozilla.github.com/pdf.js/ ).

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

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

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

在这里,页面说:

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

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

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

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

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

其他答案:你可以编码,我建议你看看这个使用 Ghostscript 的 Qt 应用程序

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

Qt 5.10 起

查看QPdfDocument Class。 此 class 可以打开 PDF 并且您可以使用渲染function 将页面渲染为图像。 我使用QQuickPaintedItem来“绘制”这个图像,但我确信还有更多方法可以处理QImage output。

Qt 5.10 之前

我用libpoppler做了一个非常相似的过程。 #include <poppler/qt5/poppler-qt5.h> Use the Poppler::Document Class to load and handle the entire PDF document and look at the Poppler::Page::renderToImage function to output the page as a QImage .

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

Qt does not support reading PDF files out of the box and among many approaches you can use Adobe's PDF Reader ActiveX object along with a QAxObject.

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM