2011-08-17 13 views
7

Chciałbym renderować/otwierać plik PDF (przechowywany na SDCard) w Androidzie bez korzystania z wbudowanej aplikacji lub przeglądarki.Android PDF Rendering

1) Próbowaliśmy biblioteki open source MuPDF, ale renderowanie przy użyciu tej biblioteki jest bardzo powolne.

2) Czy możemy używać biblioteki iText do renderowania plików PDF w systemie Android (tzn. IText jako przeglądarka plików PDF).

Czy istnieje inna biblioteka plików PDF (open source), która może być używana w systemie Android lub sugerują podstawowe wytyczne dotyczące tworzenia przeglądarki plików PDF dla systemu Android.

Odpowiedz

4

Ostatnio zrobiłem kilka badań na tym polu, próbowałem już ponad 14 bibliotek na Androida, zrobiłem prosty test porównawczy w niektórych magazynach PDF z gotową czcionką w wysokiej rozdzielczości i obecnie rozważam użycie MuPDF lub Radaee w pracy, gdy wychodzili jak najlepsi.

Próbowałem także VuDroid i apv, a one są bardzo niestabilne, często ulegają awariom na złożonych dokumentach PDF i bardzo powolne w porównaniu do MuPDF lub Radyee.

Ponieważ MuPDF i Radaee (i niektóre inne biblioteki) są napisane w czystym C i są używane na Androidzie poprzez NDK, dają najlepszą możliwą wydajność (i obaj są opłacani do komercyjnego użytku).

+0

wydaje się, że wszystkie MuPDF (pochodne VuDroid, apv), Radaee nie są odpowiednie do użycia w płatnej aplikacji. Czy to jest jakaś biblioteka PDF, którą można wykorzystać w płatnej aplikacji? – manhon

+1

Nie jestem pewien, o co dokładnie pytasz, ale jeśli twoje pytanie jest tym, co biblioteka może używać do celów komercyjnych, możesz poszukać biblioteki PDFBox. Chociaż jest to biblioteka Java, może być gdzieś port dla Androida (np. Wydaje się, że zaczyna się jakiś projekt na GitHub: https://github.com/jeremyvillalobos/android-pdfbox-port) ...istnieje również inna biblioteka plików Java o nazwie PDFView od firmy Sun, która jest całkowicie darmowa. –

8

1) MuPDF jest dobry do renderowania podręcznika pdf w Androidzie, podczas gdy renderowanie pdf z dużymi obrazami może być powolne. Konieczne jest wiele dostosowań i usprawnień, szczególnie kontrola użycia pamięci, jeśli chcesz, aby MuPDF działał szybko i stabilnie na platformie Android. Możesz sprawdzić dwa projekty open source VuDroid i apv oparte na MuPDF.

2) To zależy od Twoich wymagań. IText może być wystarczający do renderowania prostego tekstu pdf, ale nie sądzę, że ma lepszą wydajność niż MuPDF lub inne biblioteki, które opracowano przy użyciu C/C++.

Kolejnym wyborem jest użycie Poppler. Udana historia to popularna aplikacja na Androida. EzPDF Reader jest oparty na Poppler, ale narusza licencję GPL. Wyskakujący z pudełka Poppler potrzebuje więcej pracy niż MuPDF, aby zrobić to płynnie. Możesz odwołać się do projektu open source apdfviewer.

+0

Obżarstwo Dzięki za szybką odpowiedź - spróbuję zasugerować opcje i poinformuję ... Jednocześnie odkrywam kilka rzeczy i znalazłem jeszcze jedną opcję, tj. PDFBox - czy możemy użyć tego w Androidzie jako przeglądarki plików PDF ... – user895935

+2

Jak myślisz, dlaczego ezPDF opiera się na Poppler? – Vanuan

+0

Pressreader firmy Newspaper Direct również używa Popplera, działa też całkiem ładnie, chociaż przesuwanie jest trochę opóźnione. –

0

Spójrz na mój czytnik plików PDF dla Androida here at anddev. Pamiętam, że używa zmodyfikowanego PDFBox (bez spraw związanych z edycją) i posiada mój własny konwerter czcionek (aby przesyłać czcionki do Androida i renderować je szybciej).

Nie rozwijam już czytnika PDF i mogę wprowadzić wszystkie moje zmiany w open source (choć będzie to wymagało trochę pracy i czasu). Możesz go wypróbować, aby dowiedzieć się, jak dobrze on działa. Uwaga: czytnik nie obsługuje szyfrowania i ochrony przed kopiowaniem.