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

时间:2011-09-06 17:49:51

标签: ios pdf mupdf

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

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

2 个答案:

答案 0 :(得分:5)

对于迟到的答案感到抱歉,但它可以帮助人们一天或另一天。 因为我必须将MuPDF库集成到我的一个(Swift)项目中,所以我生成了 静态胖库并将它们集成到Xcode中。

在这里,您将逐步学习快速教程:

如何构建静态胖库:

  1. git clone --recursive git://git.ghostscript.com/mupdf.git
  2. 转到mupdf/platform/ios
  3. 使用Xcode打开 MuPDF.xcodeproj
  4. 将MuPDF目标的方案配置为 Release
  5. 在iPhone模拟器上构建并运行应用程序。
    • 这将为平台i386x86_64
    • 生成库
  6. 在真实的iPhone设备上构建并运行应用程序 - 使用您自己的软件包ID,证书和配置文件。
    • 这将为平台armv7arm64
    • 生成库
  7. 转到mupdf/build/
    • 您会找到两个包含所有内置库的文件夹:release-ios-i386-x86_64release-ios-armv7-arm64
  8. 现在你需要为mupdf one及其所有依赖项创建包含所有4种体系结构的胖库。
  9. 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/
      • 的所有obj-c类
      • 来自mupdf/platform/ios
      • 的常见。[h,m]文件
    2. 添加/导入先前生成的脂肪库(8个文件)
    3. 通过添加库文件的路径来配置Library Search Path
      • 例如$(inherited) $(PROJECT_DIR)/External/MuPDF/lib/
    4. 您现在应该能够使用包含的库来构建和运行您的应用程序。 使用示例项目来了解库的工作原理或任何在线教程。

      专业提示:

      最终的胖库一共都很大(约46mb)。 您可以通过导入以下内容轻松缩小应用的最终尺寸:

      1. 在发布文件夹下只有mupdf/build/release-ios-armv7-arm64
      2. 中的lib.a
      3. 在调试文件夹下,mupdf/build/
      4. 生成了大量的胖库
      5. Library Search PathDebug配置
      6. 设置不同的Release

        完成后,您将能够在每个模拟器和设备上构建并运行Debug。但仅适用于Release 的设备。通过AppStore,您最终需要哪个应用程序 应该只在真实设备上运行。不需要包含debug-simulator架构静态库。

        以下是我的Xcode项目中所有导入文件的屏幕截图:

        enter image description here

答案 1 :(得分:1)

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

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

我们还通过iTunes应用程序商店(搜索MuPDF)发布了适用于iOS的MuPDF版本 - 所以尽管他们有时会对不会允许和不允许的内容进行不明确和随意的规定,但Apple显然没有“复制功能”的问题“正如之前的一位受访者所说的那样。

至于帮助教程等:

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

我希望这足以让一位称职的程序员感动。

虽然GNU GPL版本的发布不受支持,但我们确实为那些想要它们的人提供了支持合同。或者,弹出#ghostscript irc频道,我们可以帮助进行简单的查询(尽管我们可以投入多少时间来帮助任何一个免费用户)。或者,在这里提出具体问题。