我使用itext库生成了一个PDF文件并将其保存在SD卡中。我需要在webview中打开这个PDF文件,但是当我搜索解决方案时,我发现我可以使用在线谷歌文档服务打开它,但我的PDF文件存储在SD卡中。有没有办法在webview中从外部存储打开PDF文件?
为了在Webview中打开PDF文件,最好通过Google文档服务展示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");
不,你不能使用WebView从sdcard显示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();
}
}
}