Android实现pdf预览
来源:互联网 发布:linux文件读写权限 编辑:程序博客网 时间:2024/05/22 15:24
1.https://github.com/barteksc/AndroidPdfViewer使用github上的开源框架
2.在你的as项目中引入依赖
compile 'com.github.barteksc:android-pdf-viewer:2.4.0'
3.写一个活动支持本地和在线pdf预览 ,代码如下
public class PdfViewActivity extends AppCompatActivity implements OnPageChangeListener,OnLoadCompleteListener {
private PDFView pdfView ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pdf_view);
Intent intent=getIntent();
String url=intent.getStringExtra("url");
if(url.indexOf("http")==0) {
StreamUtil st = new StreamUtil(url);
st.start();
InputStream is = null;
while (is == null) {
is = st.getIs();
}
pdfView = (PDFView) findViewById(R.id.pdfView_Bacchus);
pdfView.fromStream(is)
.enableSwipe(true)
.swipeHorizontal(false)
.enableDoubletap(true)
.defaultPage(0)
.onDraw(new OnDrawListener() {
@Override
public void onLayerDrawn(Canvas canvas, float pageWidth, float pageHeight, int displayedPage) {
}
})
.onLoad(new OnLoadCompleteListener() {
@Override
public void loadComplete(int nbPages) {
Toast.makeText(getApplicationContext(), "loadComplete", Toast.LENGTH_SHORT).show();
}
})
.onPageChange(new OnPageChangeListener() {
@Override
public void onPageChanged(int page, int pageCount) {
}
})
.onPageScroll(new OnPageScrollListener() {
@Override
public void onPageScrolled(int page, float positionOffset) {
}
})
.onError(new OnErrorListener() {
@Override
public void onError(Throwable t) {
Toast.makeText(getApplicationContext(), "error", Toast.LENGTH_SHORT).show();
}
})
.enableAnnotationRendering(false)
.password(null)
.scrollHandle(null)
.load();
}else{
pdfView = (PDFView) findViewById( R.id.pdfView_Bacchus );
File file=new File(url);
Uri uri = Uri.fromFile(file);
pdfView.fromUri(uri)
.enableDoubletap(true)
.onPageChange(this)
.enableAnnotationRendering(true)
.onLoad(this)
.enableDoubletap(true)
.load();
}
}
@Override
public void loadComplete(int nbPages) {
}
@Override
public void onPageChanged(int page, int pageCount) {
}
}
public class StreamUtil extends Thread{
private static final int SUCCESS =1 ;
String url;
InputStream is=null;
public void setUrl(String url) {
this.url = url;
}
public void setIs(InputStream is) {
this.is = is;
}
public StreamUtil(String url){
this.url=url;
}
public InputStream getIs() {
return is;
}
public void run(){
try {
URL url1=new URL(url);
HttpURLConnection connection = (HttpURLConnection) url1.openConnection();
connection.setRequestMethod("GET");//试过POST 可能报错
connection.setDoInput(true);
connection.setConnectTimeout(10000);
connection.setReadTimeout(10000);
//实现连接
connection.connect();
System.out.println("connection.getResponseCode()=" + connection.getResponseCode());
if (connection.getResponseCode() == 200) {
is = connection.getInputStream();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
- Android实现pdf预览
- Android实现PDF预览打印
- Android实现pdf在线预览或本地预览
- 浏览器实现PDF预览
- 浏览器实现PDF预览
- Android 之 PDF 预览
- android 预览PDF
- Android预览pdf
- android pdf文件预览实现的几种方式
- Android通过系统打印功能实现PDF预览打印
- 移动端实现预览pdf
- Android加载预览PDF文件
- android pdf预览 、阅读 webview打来pdf
- PDF在线预览(java实现)
- jasperReport实现页面嵌套pdf预览
- 通过 PDFRenderer 实现预览PDF 功能
- 使用FlexPaper实现PDF文件在线预览
- openoffice实现pdf上传文件预览功能
- TCP超时与重传
- yocot目录结构说明
- 基于TableStore的数据采集分析系统介绍
- 成功部署SSIS中含有Oracle数据库连接的ETL包
- 内存覆盖与内存交换
- Android实现pdf预览
- 范宇飞主任谈干细胞治疗可为干细胞治疗带来逆转希望
- ButterKnife 集成 和遇到的坑
- Nexus oss3.6.0-02 上传第三方jar
- 基础练习 高精度加法
- Coursera吴恩达《优化深度神经网络》课程笔记(2)-- 优化算法
- 【云计算的1024种玩法】使用 NAS 文件储存低价获得好磁盘性能
- Spring MVC 多文件上传
- 内存分配