如何在跨平台的C++应用程序中嵌入PDF查看器?

6

我需要在我的应用程序中嵌入一个PDF查看器。有没有可以使用的免费软件?

谢谢。

4个回答

10

5
你可以使用基于xpdf的libpopler。如果你已经在使用QT前端,那么它也有一个QT前端。另外还有ghostscript,可以渲染PDF(当然也可以渲染Postscript)。一般来说,我更喜欢popler,因为popler似乎更快。MuPDF也是Artifex产品之一。Popler是GPL版本2(或更高版本,我相信)。最新版本的Ghostscript是GPL 3,但你可以从Artifex获得商业许可证(或至少旧版本)。MuPDF也是GPL,同时也有从Artifex获取商业许可证的选项。

这意味着如果应用程序是商业性质,我就不能使用它了吗? - user63898
1
要使用poppler,您需要获取商业许可证(来自foolabs的xpdf)。 - danio
2
@danio:你关于Poppler和Foolabs商业许可证的说法是错误的。Poppler是一个由freedesktop.org托管的XPDF分支,仅使用GPL!Foolabs确实提供商业许可证,但仅适用于他们基于XPDF的产品版本,而不适用于poppler。 - Kurt Pfeifle
我的意思是,人们应该使用来自foolabs的xpdf而不是poppler。"你不能商业化使用poppler,但你可以获得xpdf组件(XPdfWidget/QT似乎是当前最佳匹配产品)的商业许可证,这些组件源代码来自www.glyphandcog.com." - danio

3

这里有一个关于开发库的列表。目前只有两个免费的PDF查看库(MuPDFPoppler)是GPL许可证的,因此如果您不想公开应用程序的源代码,则不能使用它们。


1
GPL许可证并不意味着您不能销售您的产品。它只是意味着您还必须提供您产品的源代码。 - Catalin Morosan
1
链接已失效,但维基百科有一个页面提供了更少的指向性信息,但仍然包括Poppler和MuPDF:http://en.wikipedia.org/wiki/Category:Free_PDF_readers - odinho - Velmont

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接