Разработка устройства для чтения электронных книг на iPhone/iPad с использованием библиотеки MuPDF
Могу ли я разработать программу для чтения электронных книг на iphone/ipad с помощью библиотеки MuPDF?
У тебя есть хорошая идея? Пожалуйста, помогите мне с некоторыми хорошими уроками.
2 ответа
Извините за поздний ответ, но это может помочь людям в тот или иной день. Поскольку мне пришлось интегрировать библиотеку MuPDF в один из моих проектов (Swift), я сгенерировал статические библиотеки жира и интегрировал их в Xcode.
Вот вам пошаговое краткое руководство:
Как собрать статическую толстую библиотеку:
- git clone - рекурсивный git://git.ghostscript.com/mupdf.git
- Идти к
mupdf/platform/ios
- Откройте MuPDF.xcodeproj с помощью Xcode.
- Сконфигурируйте схему цели MuPDF для Release.
- Создайте и запустите приложение на симуляторе iPhone.
- Это сгенерирует библиотеку для платформ
i386
а такжеx86_64
- Это сгенерирует библиотеку для платформ
- Создайте и запустите приложение на реальном устройстве iPhone - используйте свой собственный идентификатор пакета, сертификат и профиль обеспечения.
- Это сгенерирует библиотеку для платформ
armv7
а такжеarm64
- Это сгенерирует библиотеку для платформ
- Идти к
mupdf/build/
- Вы найдете две папки, которые содержат все встроенные библиотеки:
release-ios-i386-x86_64
а такжеrelease-ios-armv7-arm64
- Вы найдете две папки, которые содержат все встроенные библиотеки:
- Теперь вам нужно создать толстые библиотеки со всеми 4 архитектурами для mupdf и всех его зависимостей.
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
- Все obj-c классы из
mupdf/platform/ios/
классы - Общие.[H,m] файлы из
mupdf/platform/ios
- Все заголовочные файлы из
- Добавить / импортировать ранее сгенерированные толстые библиотеки (8 файлов)
- Настройте
Library Search Path
добавив путь к вашим файлам библиотеки.- Например
$(inherited) $(PROJECT_DIR)/External/MuPDF/lib/
- Например
Теперь вы сможете создавать и запускать приложение с включенной библиотекой. Используйте пример проекта, чтобы понять, как работает библиотека, или любой онлайн-учебник.
Pro Совет:
Итоговые библиотеки жира довольно большие (~ 46 МБ). Вы можете легко уменьшить окончательный размер вашего приложения, импортировав:
- Под папкой релиза просто lib.a из
mupdf/build/release-ios-armv7-arm64
- Под отладочной папкой большие сгенерированные жирные библиотеки из
mupdf/build/
- Установить разные
Library Search Path
заDebug
а такжеRelease
конфигурации.
После этого вы сможете строить и запускать на Debug
на каждом симуляторе и устройствах. Но только на устройствах для Release
, Что, в конце концов, вам нужно в качестве приложения, через AppStore следует работать только на реальных устройствах. Нет необходимости включать статические библиотеки архитектуры отладчика.
Вот скриншот всех импортированных файлов в мой проект Xcode:
Конечно, можно разработать для чтения электронных книг на iphone/ipad, используя MuPDF.
MuPDF лицензируется как под GNU GPL, так и под коммерческой лицензией Artifex. У нас есть коммерческие лицензиаты, которые используют MuPDF для реализации программ для чтения электронных книг на ipad.
Мы также выпускаем версию MuPDF для iOS через магазин приложений iTunes (ищите MuPDF) - поэтому, несмотря на их порой неясные и произвольные правила относительно того, что они будут и не разрешать, у Apple явно не возникает проблем с "дублированием функций" как Предложенный предыдущий респондент
Как помочь с учебниками и т. Д.:
- в исходном коде MuPDF у нас есть каталог документов, содержащий пример исходного кода, показывающий, как открыть / отобразить / закрыть файл PDF. У нас также есть примеры, которые показывают, как работать в многопоточных мирах.
- У нас также есть примеры просмотра Android/iOS/ Windows/ Linux в исходном коде.
- у нас есть простые инструменты командной строки (опять же с полным исходным кодом), которые показывают, как отображать PDF-файлы и т. д.
Я надеюсь, что этого достаточно, чтобы заставить компетентного программиста двигаться.
Хотя версия GNU GPL выпущена без поддержки, мы предлагаем контракты на поддержку тем, кто их хочет. Кроме того, зайдите на канал #ghostscript irc, и мы сможем помочь с простыми запросами (хотя существует ограничение на количество времени, которое мы можем потратить на помощь любому отдельному бесплатному пользователю). Или задайте конкретные вопросы здесь.