Android hat keine PDF-Unterstützung in seinen Bibliotheken. Gibt es eine Möglichkeit, PDF-Dateien in den Android-Anwendungen zu rendern?
java
android
pdf
android-pdf-api
alexleutgoeb
quelle
quelle
Antworten:
Seit API Level 21 (Lollipop) bietet Android eine PdfRenderer-Klasse :
Weitere Informationen finden Sie in der Beispiel-App .
Für ältere APIs empfehle ich die Android PdfViewer-Bibliothek . Sie ist sehr schnell und einfach zu verwenden und unter der Apache-Lizenz 2.0 lizenziert:
quelle
PDFView Library
? Was sollen wir eingebenpdfName
? Was die Funktionen tunonDraw
,onLoad
undonPageChange
Zuhörer aus? Vielen Dank für Ihre Hilfe :)Entnommen aus meinem Blog:
quelle
Ich habe aus einigen der Antworten auf diesen und andere ähnliche Beiträge einen hybriden Ansatz gemacht:
Diese Lösung prüft, ob eine PDF-Reader-App installiert ist, und führt folgende Schritte aus: - Wenn ein Reader installiert ist, laden Sie die PDF-Datei auf das Gerät herunter und starten Sie eine PDF-Reader-App. - Wenn kein Reader installiert ist, fragen Sie den Benutzer, ob er sie anzeigen möchte die PDF-Datei online über Google Drive
HINWEIS! Diese Lösung verwendet die Android-
DownloadManager
Klasse, die in API9 (Android 2.3 oder Gingerbread) eingeführt wurde. Dies bedeutet, dass es unter Android 2.2 oder früher nicht funktioniert.Ich schrieb eine Blog - Post über es hier , aber ich habe den vollständigen Code unten auf Vollständigkeit zur Verfügung gestellt:
quelle
Laden Sie den Quellcode hier herunter ( PDF-Datei in meiner Android-Anwendung anzeigen )
Fügen Sie diese Abhängigkeit in Ihre Note ein: compile 'com.github.barteksc: android-pdf-viewer: 2.0.3'
activity_main.xml
MainActivity.java
quelle
assetFileName
PDF-Datei sollte inassets
Ordner vorhanden seinEndlich konnte ich den Code von butelo ändern , um jede PDF-Datei im Android-Dateisystem mit zu öffnen
pdf.js
. Der Code befindet sich auf meinem GitHubWas ich getan habe, war das
pdffile.js
HTML-Argumentfile
wie folgt zu ändern :Sie müssen also nur den Dateipfad
index.html
wie folgt anhängen :Aktualisieren Sie die
path
Variable so, dass sie auf eine gültige PDF-Datei im Adroid-Dateisystem verweist.quelle
Sie können eine einfache Methode durch Import verwenden
und der XML-Code ist
und deklarieren und fügen Sie einfach eine Datei zu einem Asset-Ordner hinzu und weisen Sie einfach den Namen zu
quelle
PdfiumAndroid
die selbst bereits 18,4 MBagl.pdf
Datei sollte imassets
Ordner vorhanden seinUm dies ein wenig zu beleuchten, müsste ich mich für die pdf.js-Lösung von Mozilla entscheiden. Hier ist der Link zu einer bereits gut geschriebenen Implementierung: https://bitbucket.org/butelo/pdfviewer/ .
Hier sind die Änderungen, die ich in meiner Android-Aktivität hinzugefügt habe:
Hier sind die Änderungen, die ich vorgenommen habe
pdffile.js
:quelle
Ich habe den folgenden Code verwendet, um die PDF-Datei über WLAN zu öffnen und zu drucken. Ich sende meinen gesamten Code und hoffe, dass er hilfreich ist.
quelle
Es gibt sowieso keine Vorschau des PDF-Dokuments in der Android-Webansicht. Wenn Sie eine Vorschau des Base64-PDF anzeigen möchten. Es erfordert eine Drittanbieter-Bibliothek.
build.Gradle
dialog_pdf_viewer
DailogPDFViewer.java
quelle