Рендеринг Android PDF

Я хотел бы отображать / открывать файл PDF (хранящийся в SDCard) в Android без использования встроенного приложения или средства просмотра.

1) Мы попробовали библиотеку с открытым исходным кодом MuPDF, но рендеринг с использованием этой библиотеки очень медленный.

2) Можем ли мы использовать библиотеку iText для рендеринга файлов PDF в Android (т.е. iText в качестве средства просмотра PDF).

Есть ли какая-либо другая библиотека PDF (с открытым исходным кодом), которую можно использовать в Android, или предложите базовое руководство по разработке средства просмотра PDF для Android.


person user895935    schedule 17.08.2011    source источник


Ответы (3)


Недавно я провел некоторые исследования в этой области, я попробовал более 14 библиотек на Android, я провел простой бенчмаркинг на некоторых готовых к печати PDF-журналах с высоким разрешением, и в настоящее время я рассматриваю возможность использования MuPDF или Radaee в работе. как они вышли как лучшие.

Я также пробовал VuDroid и apv, и они очень нестабильны, они очень часто дают сбой при работе со сложными PDF-документами и очень медленны по сравнению с MuPDF или Radaee.

Поскольку MuPDF и Radaee (и некоторые другие библиотеки) написаны на чистом C и используются на Android через NDK, они обеспечивают максимально возможную производительность (и обе они платные для коммерческого использования).

person Luboš Staráček    schedule 29.11.2013
comment
кажется, что все MuPDF (производные VuDroid, apv), Radaee не подходят для использования в платном приложении. Это какая-нибудь библиотека PDF, которую можно использовать в платном приложении? - person manhon; 27.12.2013
comment
Я не уверен, что именно вы спрашиваете, но если ваш вопрос заключается в том, какую библиотеку можно использовать бесплатно в коммерческих целях, вы можете поискать библиотеку PDFBox. Хотя это библиотека Java, где-то может быть какой-то порт для Android (например, кажется, что на GitHub начинается какой-то проект: github.com/jeremyvillalobos/android-pdfbox-port)... также существует другая java-библиотека PDF под названием PDFView от Sun, которая совершенно бесплатна. - person Luboš Staráček; 07.01.2014

1) MuPDF хорош для рендеринга PDF-файлов учебников в Android, хотя рендеринг pdf-файлов с большими изображениями может быть медленным. Множество настроек и улучшений, особенно контроль использования памяти, необходимо сделать, если вы хотите, чтобы MuPDF работал быстро и стабильно на платформе Android. Вы можете ознакомиться с двумя проектами с открытым исходным кодом VuDroid и apv, основанными на MuPDF.

2) Это до ваших требований. iText может быть достаточно для рендеринга простого текстового PDF, но я не думаю, что он имеет лучшую производительность, чем MuPDF или другие библиотеки, разработанные с использованием C/C++.

Другой вариант — использовать Poppler. Успешная история — популярное приложение для Android ezPDF Reader, основанное на Poppler, хотя и нарушающее лицензию GPL. Готовый Poppler требует больше работы, чем MuPDF, для бесперебойной работы на Android. Вы можете обратиться к проекту с открытым исходным кодом apdfviewer.

person gluttony    schedule 17.08.2011
comment
Gluttony Спасибо за быстрый ответ - попробуем предложенные варианты и сообщим вам ... В то же время я изучаю несколько вещей и нашел еще один вариант, то есть PDFBox - можем ли мы использовать его в Android в качестве средства просмотра PDF ... - person user895935; 17.08.2011
comment
Как вы думаете, почему ezPDF основан на Poppler? - person Vanuan; 21.12.2011
comment
Pressreader от Newspaper Direct также использует Poppler, тоже работает неплохо, хотя панорамирование немного тормозит. - person Dean Wild; 13.07.2012

Взгляните на мою программу чтения PDF-файлов для Android здесь, на anddev. Насколько я помню, он использует модифицированный PDFBox (без вещей, связанных с редактированием) и имеет мой собственный конвертер шрифтов (чтобы загружать шрифты в Android и быстрее их отображать).

Я больше не разрабатываю PDF-ридер и могу сделать все свои изменения открытым исходным кодом (хотя это потребует некоторой работы и времени). Вы можете попробовать его, чтобы узнать, насколько хорошо он работает для вас. Примечание: ридер не поддерживает шифрование и защиту от копирования.

person beetoom    schedule 18.08.2011