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

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

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


person cyberworld    schedule 06.09.2011    source источник
comment
Разрешает ли Apple воссоздавать функциональность собственного программного обеспечения и продавать его? Я некоторое время не занимался iOS, но я помню, что вам не разрешалось это делать...   -  person Blender    schedule 06.09.2011
comment
В самом деле? я не думал об этих проблемах. Есть идеи?   -  person cyberworld    schedule 06.09.2011
comment
Вы не можете обойти ограничения.   -  person Blender    schedule 06.09.2011
comment
Не могли бы вы предложить мне хорошую основу для PDF?   -  person cyberworld    schedule 06.09.2011
comment
Обратите внимание, что MuPDF — это GPL, что потребует от вас также публикации исходного кода вашего приложения и может сделать его несовместимым с App Store.   -  person Brad Larson    schedule 07.09.2011
comment
MuPDF имеет двойную лицензию. Если вы хотите использовать его бесплатно, он доступен по лицензии GNU AGPL. Это действительно потребует, чтобы вы выпустили исходный код вашего приложения (но он по-прежнему идеально совместим, по крайней мере, с Android App Store). Если вы не можете соблюдать условия GNU AGPL, она также доступна с коммерческой лицензией, которая освобождает вас от всех этих сложных требований.   -  person Robin Watts    schedule 13.02.2020


Ответы (2)


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

Здесь вы идете с пошаговым кратким руководством:

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

  1. git clone --рекурсивный git://git.ghostscript.com/mupdf.git
  2. Go to mupdf/platform/ios
  3. Откройте MuPDF.xcodeproj с помощью Xcode.
  4. Настройте схему цели MuPDF на Release.
  5. Build and run the app on an iPhone simulator.
    • This will generate the library for platforms i386 and x86_64
  6. Build and Run the app on a real iPhone device - use your own bundle id, certificate and provisioning profile.
    • This will generate the library for platforms armv7 and arm64
  7. Go to mupdf/build/
    • You will find two folders that contains all built librairies: release-ios-i386-x86_64 and 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. Add/import into your project:
    • All header files from mupdf/include/mupdf
    • Все классы obj-c из mupdf/platform/ios/classes
    • Общие файлы .[h,m] из mupdf/platform/ios
  2. Добавить/импортировать ранее созданные толстые библиотеки (8 файлов)
  3. Configure the Library Search Path by adding the path to your library files.
    • For example $(inherited) $(PROJECT_DIR)/External/MuPDF/lib/

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

Профессиональный совет:

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

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

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

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

введите здесь описание изображения

person Kevin Delord    schedule 29.06.2015
comment
Большое спасибо за то, что сэкономили мне кучу времени с помощью этого руководства. И мне также нужно настроить User Header Search Paths вручную в шаге 3 Как интегрировать MuPDF в ваш проект, например, $(PROJECT_DIR)/MuPDFSample/Bundles/mupdf/include. Просто запишите это здесь, на случай, если кто-нибудь когда-нибудь воспользуется этим. - person Calios; 09.01.2017
comment
Кстати, для новейшей версии (1.10a) статическая библиотека, которую я создал, имеет размер 170M+ только для libmupdf.a... ???? Она действительно такая большая? - person Calios; 09.01.2017
comment
Я не могу создавать толстые библиотеки со своей машины. См. снимок экрана. Обнаружена проблема Не удается открыть входной файл. Как я могу преодолеть это? Уточните, пожалуйста, меня поразил 8-й шаг, который вы перечислили. - person Nazik; 12.10.2017
comment
Где находится mupdf/платформа/ios? Не могу найти. - person Bagusflyer; 12.11.2018

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

MuPDF распространяется под лицензией GNU GPL и под коммерческой лицензией Artifex. У нас есть коммерческие лицензиаты, которые используют MuPDF для реализации программ чтения электронных книг на iPad.

Мы также выпускаем версию MuPDF для iOS через магазин приложений iTunes (ищите MuPDF) — поэтому, несмотря на иногда неясные и произвольные правила о том, что они будут разрешать, а что нет, у Apple явно нет проблем с «дублированием функций» как с предположил предыдущий респондент.

Что касается помощи с учебниками и т. д.:

  • в исходном коде MuPDF у нас есть каталог документов, который содержит пример исходного кода, показывающий, как открывать/рендерить/закрывать файл PDF. У нас также есть примеры, которые показывают, как работать в многопоточных мирах.
  • у нас также есть примеры просмотрщиков android/iOS/windows/linux в исходниках.
  • у нас есть простые инструменты командной строки (опять же с полным исходным кодом), которые показывают, как отображать PDF-файлы и т. д.

Я надеюсь, что этого достаточно, чтобы сдвинуть с места компетентного программиста.

Хотя версия GNU GPL выпускается без поддержки, мы предлагаем контракты на поддержку тем, кто в них нуждается. Кроме того, загляните на irc-канал #ghostscript, и мы сможем помочь с простыми вопросами (хотя существует ограничение на то, сколько времени мы можем потратить на помощь одному бесплатному пользователю). Или задавайте конкретные вопросы здесь.

person Robin Watts    schedule 09.05.2013
comment
Сколько примерно стоит разработчику использовать библиотеку mupdf в своем коммерческом средстве просмотра PDF с закрытым исходным кодом? - person mnr; 12.02.2020
comment
Каждая лицензия уникальна, потому что каждый вариант использования индивидуален. Свяжитесь с нами по адресу [email protected], опишите желаемое использование (чем больше подробностей, тем лучше), и дружелюбные люди свяжутся с вами и предоставят вам предложение. - person Robin Watts; 13.02.2020