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

cyb*_*rld 4 pdf ios mupdf

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

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

Kev*_*ord 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模拟器上构建并运行应用程序.
    • 这将生成平台i386和库的库x86_64
  6. 在真实的iPhone设备上构建和运行应用程序 - 使用您自己的软件包ID,证书和配置文件.
    • 这将生成平台armv7和库的库arm64
  7. mupdf/build/
    • 您将找到两个包含所有构建的库的文件夹:release-ios-i386-x86_64release-ios-armv7-arm64
  8. 现在,您需要为mupdf one及其所有依赖项创建包含所有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
    • 类中的所有obj-c mupdf/platform/ios/
    • 来自的常见.[h,m]文件 mupdf/platform/ios
  2. 添加/导入以前生成的胖库(8个文件)
  3. Library Search Path通过添加库文件的路径来配置.
    • 例如 $(inherited) $(PROJECT_DIR)/External/MuPDF/lib/

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

专家提示:

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

  1. 在一个发布文件夹下只有lib.a来自 mupdf/build/release-ios-armv7-arm64
  2. 在一个调试文件夹下,大量生成的胖库 mupdf/build/
  3. 设置不同的Library Search Pathfor DebugReleaseconfig.

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

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

在此输入图像描述