3 Stimmen

Wie öffnet man eine PDF-Datei in einem Webview auf Android?

Ich habe ein PDF mit der iText-Bibliothek generiert und es wird auf der SD-Karte gespeichert. Ich muss das PDF im Webview öffnen, aber als ich nach der Lösung gesucht habe, habe ich herausgefunden, dass ich es mit dem Online Google-Dokumentendienst öffnen kann, aber mein PDF ist auf einer SD-Karte gespeichert. Gibt es eine Möglichkeit, ein PDF aus dem externen Speicher in einem Webview zu öffnen?

3voto

Akash Moradiya Punkte 3318

Um eine PDF-Datei im Webview zu öffnen, ist es besser, die PDF-Datei über den Google-Doc-Service anzuzeigen,

WebView webView = (WebView) context.findViewById(R.id.webView1);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url=" + pdf");

Dies könnte Ihnen helfen

-1voto

DenisMath Punkte 547

Nein, Sie können WebView nicht verwenden, um eine PDF-Datei von einer SD-Karte anzuzeigen. Nur HTML-Dateien können möglicherweise angezeigt werden.

Die einfachste Lösung für diese Aufgabe besteht darin, einen externen PDF-Reader zu verwenden. Ein solcher Ansatz ist für Benutzer bequem genug, da ein "selbstgemachter" PDF-Reader, den Sie aus einem Open-Source-Code von Github erstellen können, langsam sein kann, um große PDF-Dateien anzuzeigen.

public class PDFReader {
public void read(Activity context,  String fileName){
    File appFolder = new File( Environment.getExternalStorageDirectory(), 
        context.getBaseContext().getPackageName() );
    File file = new File(appFolder, fileName);

    Uri path = Uri.fromFile(file);
    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setDataAndType(path, "application/pdf");
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

    try {
        context.startActivity(intent);
    } 
    catch (ActivityNotFoundException e) {
        Toast.makeText(context, "        PDF!", 
            Toast.LENGTH_SHORT).show();
    }
}

}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X