我使用itext库生成了一个pdf,它存储在sdcard中。我必须在webview中打开pdf,但是当我搜索解决方案时,我发现我可以使用在线谷歌文档服务打开它,但我的pdf存储在SD卡中。有没有办法在webview中从外部存储打开pdf?
答案 0 :(得分:2)
要在Webview中打开pdf,最好通过google doc service显示pdf,
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");
这可能会对你有所帮助
答案 1 :(得分:-1)
不,您不能使用WebView从SD卡显示PDF文件。只显示HTML文件。
此任务的最简单解决方案是使用外部PDF阅读器。这样的方法对用户来说足够方便,因为手工制作"您从github开源代码创建的PDF阅读器即可 显示大型pdf文件的速度很慢。
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();
}
}
}