Разработка устройства для чтения электронных книг на iPhone/iPad с использованием библиотеки MuPDF

Могу ли я разработать программу для чтения электронных книг на iphone/ipad с помощью библиотеки MuPDF?

У тебя есть хорошая идея? Пожалуйста, помогите мне с некоторыми хорошими уроками.

2 ответа

Извините за поздний ответ, но это может помочь людям в тот или иной день. Поскольку мне пришлось интегрировать библиотеку MuPDF в один из моих проектов (Swift), я сгенерировал статические библиотеки жира и интегрировал их в Xcode.

Вот вам пошаговое краткое руководство:

Как собрать статическую толстую библиотеку:

  1. git clone - рекурсивный git://git.ghostscript.com/mupdf.git
  2. Идти к mupdf/platform/ios
  3. Откройте MuPDF.xcodeproj с помощью Xcode.
  4. Сконфигурируйте схему цели MuPDF для Release.
  5. Создайте и запустите приложение на симуляторе iPhone.
    • Это сгенерирует библиотеку для платформ i386 а также x86_64
  6. Создайте и запустите приложение на реальном устройстве iPhone - используйте свой собственный идентификатор пакета, сертификат и профиль обеспечения.
    • Это сгенерирует библиотеку для платформ armv7 а также arm64
  7. Идти к mupdf/build/
    • Вы найдете две папки, которые содержат все встроенные библиотеки: release-ios-i386-x86_64 а также release-ios-armv7-arm64
  8. Теперь вам нужно создать толстые библиотеки со всеми 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 в ваш проект:

  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/

Теперь вы сможете создавать и запускать приложение с включенной библиотекой. Используйте пример проекта, чтобы понять, как работает библиотека, или любой онлайн-учебник.

Pro Совет:

Итоговые библиотеки жира довольно большие (~ 46 МБ). Вы можете легко уменьшить окончательный размер вашего приложения, импортировав:

  1. Под папкой релиза просто lib.a из mupdf/build/release-ios-armv7-arm64
  2. Под отладочной папкой большие сгенерированные жирные библиотеки из mupdf/build/
  3. Установить разные 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, и мы сможем помочь с простыми запросами (хотя существует ограничение на количество времени, которое мы можем потратить на помощь любому отдельному бесплатному пользователю). Или задайте конкретные вопросы здесь.

Другие вопросы по тегам