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?
Antworten
Zu viele Anzeigen?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
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();
}
}
}