PDF in App Anzeigen

T

tefracky

App-Anbieter (kostenlos)
184
Hallo,

kennt jemand eine einfache Möglichkeit, wie man in einer App eine PDF anzeigen und darin suchen kann?

Gruß

Tefracky
 
Hallo tefracky,

Github ist eigentlich voll von Libraries , warum ist da nichts Passendes für dich dabei ?

Wenn du was "Vernünftiges" haben magst , so kann ich nur das hier empfehlen,
allerdings in C/C++ und mit NDK zu implementieren
MuPDF

Das verwende ich zumindest in einigen Projekten und bin sehr zufrieden.

P.S . Durchsuchen : Die PDF's müssen mindestens im PDF-A Format vorliegen
sonst kann man auch nicht darin suchen.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: tefracky
Hallo und danke!

Der Link gefällt mir gut und ich habe auch einen Haufen auf GitHub gefunden, aber ich bin irgendwie zu doof, dass zu implementieren. Ich schaue es mir morgen in Ruhe an, vielleicht schaffe ich es ja doch.

Gruß
 
Also ich kann dir bezüglich des Implementierens ein paar kleine Tipps geben.

Wenn du ein Library Projekt von GitHub lädst und dieses einbinden willst, solltest du folgend vorgehen:
  • Klick auf New
  • Klick auf Import Module
  • Verweise auf dein Library Projekt (Pfad) und vergib einen Namen
  • Öffne die Datei build.gradle (Module:app) und füge unter "dependencies" folgendes ein: compile project('NameDenDuVergebenHast')
Wenn du eine normale JAR-Library hast kannst du die über deine "Project Structure" -> "dependencies" -> "+" einbinden.

Dann dein Projekt builden und danach solltest du die Library ansprechen können.

Hoffe ich hab jetzt nichts falsches erzählt - ist noch so früh. Kannst es ggf. ja mal testen und Rückmeldung geben. :)

Im Falle von swa's Tipp mit MuPDF und der Implementation mit C/C++ und NDK kann ich dir leider nichts sagen, noch nie gemacht.
 
  • Danke
Reaktionen: tefracky
Vielen Dank für die Antwort! Es hat auch einwandfrei funktioniert, danke!
 
  • Danke
Reaktionen: swa00 und lordzwieback
Also ich habe jetzt das Mozilla addon pdf.js runtergeladen und die Ordner web und build in den Ordner assets kopiert (Download siehe hier: PDF.js). In einer webview wird dann file:///android_assets/web/viewer.html?file=testpdf.pdf aufgerufen. Gleiches funktioniert auch einwandfrei, wenn ich die Ordner auf einem Webserver aufrufe. Die webview in der Android App öffnet dann auch brav den pdf.js viewer, lädt aber keine PDF. Woran könnte das liegen.
Alternativ habe ich das hier gefunden: GitHub - loosemoose/androidpdf: Android pdf viewer using pdf.js
Wie wäre hier das prinzipielle vorgehen, um das in ein Android Studio Projekt einzubinden?
Ich mache das nur als Hobby und das mit C++ wird mir dann doch zu kompliziert.

Gruß
 
Hallo tefracky,

die Verwendung dieses Javascriptes unter Android macht Zicken.
Das wird nicht ordentlich funktionieren, alleine schon im UI Aufbau (Fitting, Zooming etc)

Was du in deinem Falle falsch gemacht hast , können wir schlecht aus der Ferne
ohne Details "vermuten" . Soweit reicht unsere Kristallkugel dann auch nicht. :)

Dein oben genannter Link verwendet auch JS und es handelt sich hierbei um ein
fertiges Projekt einer APK - das ist keine Library.

It is not meant to be a library.

Also nachbauen.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: tefracky
Also ich habe das PDF.js nach assets kopiert und kann es auch wunderbar verwenden, das ist kein Problem. Nur sobald ich es von der internn Speicherkarte, also Android/Data/... verwenden will, geht es nicht richtig, da wird dann keine PDF geöffnet. Woran das liegt, weiß ich leider nicht. Gleichzeitig kann ich auch keine neue PDF nach Assets runterladen bzw. diese PDF aktualisieren ohne gleich eine neue App Version erstellen zu müssen. Der ursprüngliche Plan war, dass die PDF, sobald sie geändert wird, automatisch neu runtergeladen und gespeichert wird.

Im Grunde möchte ich folgendes: Eine PDF runterladen, sobald sie geändert wird und wenn ich die App öffne, soll die PDF in einem internen Viewer geöffnet werden. Das klingt zwar nicht schwer, ist es aber für mich.

Du hast nicht zufällig ein einfaches Beispielprojekt für mich?

Nachbauen kommt absolut nicht in Frage, dafür kann ich zu wenig.

Gruß
 
Hallo tefracky,

Nachbauen kommt absolut nicht in Frage, dafür kann ich zu wenig.

Bei dir steht im Profil "App-Anbieter" .
Ich konnte also nicht davon von ausgehen , dass es Dir an Grundlagen fehlt und du ein bereits fertiges Projekt nicht in AS öffnen kannst.

Gleichzeitig kann ich auch keine neue PDF nach Assets runterladen bzw. diese PDF aktualisieren ohne gleich eine neue App Version erstellen zu müssen. Der ursprüngliche Plan war, dass die PDF, sobald sie geändert wird, automatisch neu runtergeladen und gespeichert wird.

Das geht auch nicht so : Zuerst musst du den DownloadProcess implementieren , dann einen (temporären) ZielPfad angeben
und von dort aus das PDF laden. (wenn es fertig ist)

DownloadListener | Android Developers

Du kannst keine Daten in die Assets laden - Assets sind i.d.R. dazu gedacht CustomDaten dem APK Paket mitzuliefern und
sie ggf zu Synchronisieren - ergo temporär auszulagern ( zur Runtime)
Danach kannst du gerne hingehen und das PDF lokal überschreiben

AssetFileDescriptor | Android Developers
AssetManager | Android Developers
 
Zuletzt bearbeitet:
Hallo Stefan,

vielen lieben Dank für Deine Hilfe!

Ich sehe, dass bei mir App-Anbieter steht, aber keine Ahnung wo das her kommt. Ich kann mich nicht daran erinnern, das selbst einmal aktiv dort reingestellt zu haben. Ein fertiges PRojekt zu öffnen ist auch kein Problem, da haben wir uns missverstanden.

Das mit der PDF habe ich gelöst: Ich lasse sie einfach auf den internen Speicher runterladen und dann kann ich sie von da öffnen.
 

Ähnliche Themen

D
  • Data2006
3 4 5
Antworten
84
Aufrufe
3.644
jogimuc
J
R
  • Robby1950
2
Antworten
23
Aufrufe
1.003
Robby1950
R
Manny87
  • Manny87
Antworten
11
Aufrufe
159
swa00
swa00
Zurück
Oben Unten