使用MuPDF库在iPhone / iPad上开发电子书阅读器

我可以使用MuPDF库在iPhone / iPad上开发电子书阅读器吗?

你有什么好主意吗? 请帮助我一些很好的教程。

对不起,迟到的答案,但它可以帮助人们一天或其他。 由于我必须将MuPDF库集成到我的(Swift)项目之一中,所以我生成了静态的胖库并将它们集成到Xcode中。

在这里你可以通过一步一步的快速教程:

如何构build静态库文件:

  1. git clone –recursive git://git.ghostscript.com/mupdf.git
  2. mupdf/platform/ios
  3. 用Xcode打开MuPDF.xcodeproj
  4. configurationMuPDF目标的scheme为Release
  5. 在iPhone模拟器上构build并运行应用程序。
    • 这将生成平台i386x86_64的库
  6. 在真实的iPhone设备上构build和运行应用程序 – 使用您自己的软件包ID,证书和configuration文件。
    • 这将生成平台armv7arm64的库
  7. 转到mupdf/build/
    • 你会发现两个文件夹包含所有内置的库: release-ios-i386-x86_64release-ios-armv7-arm64
  8. 现在,您需要为mupdf及其所有依赖项创build包含全部4种体系结构的胖库。

lipo -create ./*/libcurl.a -output 'libcurl.a' ; lipo -create ./*/libfreetype.a -output 'libfreetype.a' ; lipo -create ./*/libjbig2dec.a -output 'libjbig2dec.a' ; lipo -create ./*/libjpeg.a -output 'libjpeg.a' ; lipo -create ./*/libmujs.a -output 'libmujs.a' ; lipo -create ./*/libmupdf.a -output 'libmupdf.a' ; lipo -create ./*/libopenjpeg.a -output 'libopenjpeg.a' ; lipo -create ./*/libz.a -output 'libz.a'

如何将MuPDF整合到您的项目中:

  1. 添加/导入到您的项目中:
    • 所有来自mupdf/include/mupdf头文件
    • 所有来自mupdf/platform/ios/ classes的obj-c类
    • 来自mupdf/platform/ios的常见。[h,m]文件
  2. 添加/导入以前生成的胖库(8个文件)
  3. 通过将path添加到库文件来configurationLibrary Search Path
    • 例如$(inherited) $(PROJECT_DIR)/External/MuPDF/lib/

您现在应该能够构build和运行包含库的应用程序。 使用示例项目来了解库的工作原理或任何联机教程。

专家提示:

最后的胖子库很大(〜46mb)。 通过导入,您可以轻松地减less应用程序的最终大小:

  1. 在释放文件夹下,只有来自mupdf/build/release-ios-armv7-arm64
  2. 在一个debugging文件夹下,从mupdf/build/
  3. DebugReleaseconfiguration设置不同的Library Search Path

完成后,您将能够在每个模拟器和设备上构build并运行Debug 但只在Release设备上 。 哪一个最终需要作为您的应用程序,AppStore应该只能在真实设备上运行。 不需要包含debugging模拟器架构静态库。

下面是所有导入到Xcode项目中的文件的截图:

在这里输入图像说明

使用MuPDF在iphone / ipad上开发电子书阅读器当然是可能的。

MuPDF获得GNU GPL和Artifex商业许可。 我们有商业许可证使用者使用MuPDF在ipad上实现电子书阅读器。

我们还通过iTunes应用程序商店(searchMuPDF)发布了适用于iOS的MuPDF版本 – 尽pipe他们有时不清楚和任意规定他们将会和不会允许的内容,但Apple显然没有将“复制function”作为以前的受访者build议。

至于帮助教程等:

  • 在MuPDF源文件中,我们有一个doc目录,其中包含显示如何打开/呈现/closuresPDF文件的示例源代码。 我们也有例子显示如何在multithreading世界中工作。
  • 我们在源码中也有示例android / iOS / windows / linux的查看器。
  • 我们有简单的命令行工具(同样具有完整的源代码),显示如何呈现PDF等。

我希望这足以让一个能干的程序员移动。

在GNU GPL版本不被支持的情况下,我们向那些想要它们的人提供支持合同。 或者,沿着#ghostscript irc频道,我们可以帮助简单的查询(尽pipe我们可以花费多less时间来帮助任何一个免费的用户)。 或者,在这里提出具体的问题。