用pdf.js在手机APP端显示服务器端PDF文件
http://mozilla.github.io/pdf.js/getting_started/#download
下载网址 选择
Stable(v11.9.426)版本
在AndroidStudio 建立的工程的app下的main目录 右键--new--Folder--Assets Folder.
在main 目录下会新建一个assets 目录。将下载的pdfjs-1.9.426-disk全部复制到assets 目录下
在Activity文件中调用并在 xml 文件中显示服务器上的PDF文件 url是“http://xxx.xxx.xxxx....aaa.pdf”
public class XXXXXActivity extends BaseActivity {
private WebView pdfWebView;
private String url;//pdf服务器地址
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_scan_pdf_report);
initView();
}
/**
* 初始化视图
*/
private void initView() {
url = getIntent().getStringExtra("url");//网络PDF地址
pdfWebView = (WebView) findViewById(R.id.activity_scan_pdf_report_wv);
pdfWebView.setWebViewClient(new WebViewClient()// // 重写此方法表明点击网页里面的链接还是在当前的webview里跳转。不跳到浏览器那边
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// 返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器
view.loadUrl(url);
return true;
}
});
WebSettings settings = pdfWebView.getSettings();
settings.setSavePassword(false);//API18以上版本已废弃。未来版本将不支持保存WebView中的密码。设置WebView是否保存密码,默认true
settings.setJavaScriptEnabled(true);//设置WebView是否允许执行JavaScript脚本,默认false,不允许
settings.setAllowFileAccessFromFileURLs(true);
settings.setAllowUniversalAccessFromFileURLs(true);
settings.setBuiltInZoomControls(true);//设置WebView是否使用其内置的变焦机制,该机制集合屏幕缩放控件使用,默认是false,不使用内置变焦机制。
pdfWebView.setWebChromeClient(new WebChromeClient());
pdfWebView
.loadUrl("file:///android_asset/pdfjs-1.9.426-dist/web/viewer.html?file=" + url);//先把文件下载到本地,然后传入本地文件路径进行下载
}
}
注释掉viewer.js文件内的jiejue 跨域报错问题
在 viewer.html 文件中找到sidebarContainer ,(默认侧页弹出比较烦人,隐藏掉)
隐藏侧页添加 class=”hidden”
自己建立的XML文件里的webView
<WebView
android:id="@+id/activity_scan_pdf_report_wv"
android:layout_width="match_parent"
android:layout_height="match_parent" />