2016-03-09 8 views
2

У нас есть приложение Android, которое должно генерировать PDFs от XML данные с использованием шаблонов XSL-FO. С этой целью я просматривал библиотеки, которые можно использовать в нашем приложении для Android, которое может преобразовывать XML в PDF. Поскольку приложение должно иметь возможность работать в автономном режиме, PDF через сервер не вариант для нас.Работает ли Apache FOP на Android?

Я рассматривал возможность использования Apache FOP, но получил противоречивую информацию в Интернете о том, будет ли Apache FOP работать на Android или нет. Например, This blog заявляет, что FOP по адресу Android является «неуместным», но конкретно не указывает, какие проблемы возникли при попытке его использования. Ответ на вопрос this question, с другой стороны, предполагает, что теоретически можно получить FOP, работающий на Android.

Что я ищу здесь, ясность в том, что касается фактической ситуации с использованием Apache FOP в приложении Android. Кто-нибудь пробовал это и может подтвердить, работает ли он или не работает? Если это не так, может ли кто-нибудь указать конкретные сведения о недостающих зависимостях или проблемах, которые могут возникнуть при попытке использовать его на Android? Мне нужно оценить, есть ли проблемы с зависимостями, насколько серьезны эти проблемы и объем работы, которая потребуется для преодоления этих проблем.

+0

Я никогда не пытался использовать его на Android, но я собираюсь предположить, что вы столкнетесь с проблемами ресурсов. Fop использует достаточное количество памяти (в зависимости от вашего документа). Вы также генерируете XML? Если это так, вы можете использовать библиотеку генерации PDF и просто писать прямо в pdf. – Matthew

+0

@Matthew Да, я тоже буду генерировать XML, хотя это не будет очень интенсивным. Причина, по которой мне нужно использовать FOP, заключается в том, что макет PDF определяется клиентом и сохраняется с помощью XSL-FO. Я пытаюсь сделать преобразование FOP в Android. Если он столкнется с проблемами с ресурсами, я скоро узнаю об этом. :) – BruceHill

+0

@BruceHill у меня такой же выпуск. вы получили решение? –

ответ

0

С Android вы не можете просто взять .jar из библиотеки Java и использовать его в приложении для Android. Android использует JVM Dalvik (http://en.wikipedia.org/wiki/Dalvik_(software)) , который не на 100% совместим с полным API от API Java SE и вместо этого поддерживает только подмножество API. По этой причине многие из библиотек Java, к которым вы можете использовать, например, FOP, не совместимы с Android как есть, а требуют специализации, прежде чем такие библиотеки будут функционировать должным образом на устройстве Android.

+1

Хорошо. Я знаю об этом, но то, что я действительно искал с этим вопросом, было спецификой. Какие зависимости отсутствуют или какие конкретные вызовы API используются, которые отсутствуют в JVM Dalvik. Кто-нибудь пытался его портировать? Это суть моего вопроса. – BruceHill

+1

Копировать-вставить [этот ответ] (http://stackoverflow.com/a/5084664/334493) –

Смежные вопросы