我的要求是,我需要为我的应用程序显示pdf内容。我通过HTTP调用获取文件的InputStream。如何将此InputStream转换为PDF视图而不存储在SD卡中?
我可以使用以下代码:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(File Path)), "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
但是还有其他方法可以在PDF中显示吗?
答案 0 :(得分:0)
在Android应用程序中显示PDF的另一种方法是使用来自http://docs.google.com/viewer
伪
String doc="<iframe src='http://docs.google.com/viewer?url=+location to your PDF File+'
width='100%' height='100%'
style='border: none;'></iframe>";
样本如下所示
String doc="<iframe src='http://docs.google.com/viewer?url=http://www.iasted.org/conferences/formatting/presentations-tips.ppt&embedded=true'
width='100%' height='100%'
style='border: none;'></iframe>";
代码
WebView wv = (WebView)findViewById(R.id.webView);
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setPluginsEnabled(true);
wv.getSettings().setAllowFileAccess(true);
wv.loadUrl(doc);
//wv.loadData( doc, "text/html", "UTF-8");
并在清单中提供
<uses-permission android:name="android.permission.INTERNET"/>
请参阅this
警告:我不知道各种Android版本的兼容性问题
答案 1 :(得分:-1)
尝试这种方式:
File m_file=new File("/sdcard/myPdf.pdf"); Uri m_uri=Uri.fromFile(m_file); try { Intent intentUrl = new Intent(Intent.ACTION_VIEW); intentUrl.setDataAndType(m_uri, "application/pdf"); intentUrl.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intentUrl); } catch (ActivityNotFoundException e) { Toast.makeText(m_context, "No PDF Viewer Installed", Toast.LENGTH_LONG).show(); }