Android nie obsługuje plików PDF w swoich bibliotekach. Czy jest jakiś sposób na renderowanie plików PDF w aplikacjach na Androida?
java
android
pdf
android-pdf-api
alexleutgoeb
źródło
źródło
Odpowiedzi:
Ponieważ interfejs API poziomu 21 (Lollipop) Android zapewnia klasę PdfRenderer :
Aby uzyskać więcej informacji, zobacz przykładową aplikację .
W przypadku starszych interfejsów API polecam bibliotekę Android PdfViewer , jest ona bardzo szybka i łatwa w użyciu, na licencji Apache License 2.0:
źródło
PDFView Library
? Co powinniśmy włożyćpdfName
? Co zrobić, funkcjeonDraw
,onLoad
ionPageChange
słuchacz wyglądać? Dzięki za pomoc :)Zaczerpnięte z mojego bloga:
źródło
Podjąłem podejście hybrydowe na podstawie niektórych odpowiedzi udzielonych na ten i inne podobne posty:
To rozwiązanie sprawdza, czy aplikacja czytnika PDF jest zainstalowana i wykonuje następujące czynności: - Jeśli czytnik jest zainstalowany, pobierz plik PDF na urządzenie i uruchom aplikację czytnika PDF - Jeśli nie zainstalowano czytnika, zapytaj użytkownika, czy chce wyświetlić plik PDF online za pośrednictwem Dysku Google
UWAGA! To rozwiązanie wykorzystuje
DownloadManager
klasę Androida , która została wprowadzona w API9 (Android 2.3 lub Gingerbread). Oznacza to, że nie działa na Androidzie 2.2 lub wcześniejszym.Pisałem na blogu o tym tutaj , ale ja pod warunkiem pełnego poniższy kod pod kątem kompletności:
źródło
Pobierz kod źródłowy tutaj ( Wyświetl plik PDF w mojej aplikacji na Androida )
Dodaj tę zależność w swojej klasie: kompiluj „com.github.barteksc: android-pdf-viewer: 2.0.3”
Activity_main.xml
MainActivity.java
źródło
assetFileName
plik pdf powinien istnieć wassets
folderzeW końcu mogłem zmodyfikować kod butelo, aby otworzyć dowolny plik PDF w systemie plików Android za pomocą
pdf.js
. Kod można znaleźć na moim GitHubTo, co zrobiłem, zostało zmodyfikowane tak,
pdffile.js
aby odczytać argument HTML wfile
następujący sposób:Musisz więc po prostu dołączyć ścieżkę do pliku w
index.html
następujący sposób:Zaktualizuj
path
zmienną, aby wskazywała prawidłowy plik PDF w systemie plików Adroid.źródło
możesz użyć prostej metody importowania
a kod XML to
i po prostu zadeklaruj i dodaj plik do folderu zasobów i po prostu przypisz nazwę
źródło
PdfiumAndroid
który sam ma już 18,4 MBagl.pdf
plik powinien istnieć wassets
folderzeAby dodać trochę światła, musiałbym skorzystać z rozwiązania pdf.js firmy Mozilla. Oto link do już dobrze napisanej implementacji tego: https://bitbucket.org/butelo/pdfviewer/ .
Oto zmiany, które dodałem w mojej Aktywności na Androida:
Oto zmiany, które wprowadziłem
pdffile.js
:źródło
Użyłem poniższego kodu, aby otworzyć i wydrukować plik PDF za pomocą Wi-Fi. Wysyłam cały mój kod i mam nadzieję, że będzie pomocny.
źródło
Tak czy inaczej, podgląd pliku pdf w widoku Androida nie jest możliwy. Jeśli chcesz wyświetlić podgląd pliku pdf base64. Wymaga biblioteki innej firmy.
build.Gradle
dialog_pdf_viewer
DailogPDFViewer.java
źródło