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

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

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

Ответы [ 2 ]

5 голосов
/ 29 июня 2015

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

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

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

  1. git clone --recursive 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 Совет:

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

  1. В папке релиза просто lib.a из mupdf/build/release-ios-armv7-arm64
  2. В папке отладки большие сгенерированные толстые библиотекис mupdf/build/
  3. Установить различные Library Search Path для Debug и Release config.

После этого вы сможете строить и запускать Debug на каждом симуляторе и устройствах.Но только на устройствах для Release.Что, в конце концов, вам нужно в качестве приложения, через AppStore следует работать только на реальных устройствах.Нет необходимости включать статические библиотеки архитектуры имитатора отладки.

Вот скриншот всех импортированных файлов в мой проект Xcode:

enter image description here

1 голос
/ 09 мая 2013

Конечно, можно разработать устройство для чтения электронных книг на 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, и мы сможем помочь с простыми запросами (хотя существует ограничение на количество времени, которое мы можем потратить на помощь любому отдельному бесплатному пользователю).Или задайте конкретные вопросы здесь.

...