使用MuPDF库在iPhone / iPad上开发电子书阅读器
我可以使用MuPDF库在iPhone / iPad上开发电子书阅读器吗?
你有什么好主意吗? 请帮助我一些很好的教程。
对不起,迟到的答案,但它可以帮助人们一天或其他。 由于我必须将MuPDF库集成到我的(Swift)项目之一中,所以我生成了静态的胖库并将它们集成到Xcode中。
在这里你可以通过一步一步的快速教程:
如何构build静态库文件:
- git clone –recursive git://git.ghostscript.com/mupdf.git
- 去
mupdf/platform/ios
- 用Xcode打开MuPDF.xcodeproj 。
- configurationMuPDF目标的scheme为Release 。
- 在iPhone模拟器上构build并运行应用程序。
- 这将生成平台
i386
和x86_64
的库
- 这将生成平台
- 在真实的iPhone设备上构build和运行应用程序 – 使用您自己的软件包ID,证书和configuration文件。
- 这将生成平台
armv7
和arm64
的库
- 这将生成平台
- 转到
mupdf/build/
- 你会发现两个文件夹包含所有内置的库:
release-ios-i386-x86_64
和release-ios-armv7-arm64
- 你会发现两个文件夹包含所有内置的库:
- 现在,您需要为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整合到您的项目中:
- 添加/导入到您的项目中:
- 所有来自
mupdf/include/mupdf
头文件 - 所有来自
mupdf/platform/ios/
classes的obj-c类 - 来自
mupdf/platform/ios
的常见。[h,m]文件
- 所有来自
- 添加/导入以前生成的胖库(8个文件)
- 通过将path添加到库文件来configuration
Library Search Path
。- 例如
$(inherited) $(PROJECT_DIR)/External/MuPDF/lib/
- 例如
您现在应该能够构build和运行包含库的应用程序。 使用示例项目来了解库的工作原理或任何联机教程。
专家提示:
最后的胖子库很大(〜46mb)。 通过导入,您可以轻松地减less应用程序的最终大小:
- 在释放文件夹下,只有来自
mupdf/build/release-ios-armv7-arm64
- 在一个debugging文件夹下,从
mupdf/build/
- 为
Debug
和Release
configuration设置不同的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时间来帮助任何一个免费的用户)。 或者,在这里提出具体的问题。