重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
先获取读取文件的权限,再遍历文件夹及子文件夹,直到结束就可以了。
成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于做网站、网站建设、改则网络推广、微信小程序定制开发、改则网络营销、改则企业策划、改则品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供改则建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
private void getAllFiles(File root,ArrayListFile results){
File files[] = root.listFiles();
if(files != null){
for (File f : files){
if(f.isDirectory()){
getAllFiles(f,results);
}
else{
String name = f.getName();
String extension
= name.substring(name.lastIndexOf("."));
if(extension.Equal("pdf")){
results.add(f);
}
}
}
}
}
分页方法:
打开网络pdf 思路整体还是来源与图片的加载。
android中加载网络图片的框架有很多个。如image-laoder, fresco、glide等,首先都是从内存中找图片,如果内存中没有,接着从本地找,本地没有在从网络下载。
android中加载pdf也是类似,首先从本地找pdf文件,如果本地存在该pdf文件,直接打开,如果本地不存在,将该pdf文件下载到本地在打开。
下载文件用到了retrofit2的库,已经封装到android_pdf中了。
2.依赖android_pdf库方法
2.1 在项目的gradle中增加如下代码:
compile 'com.lidong.pdf:android_pdf:1.0.1'
2.2 一句代码就可以加载网络pdf。
```
pdfView.fileFromLocalStorage(this,this,this,fileUrl,fileName); //设置pdf文件地址
```
2.3对fileFromLocalStorage(this,this,this,fileUrl,fileName)的解析
/**
```
* 加载pdf文件
* @param onPageChangeListener
* @param onLoadCompleteListener
* @param onDrawListener
* @param fileUrl
* @param fileName
*/
public void fileFromLocalStorage(
final OnPageChangeListener onPageChangeListener,
final OnLoadCompleteListener onLoadCompleteListener,
final OnDrawListener onDrawListener,
String fileUrl,
final String fileName)
```
1. OnPageChangeListener onPageChangeListener :翻页回调
2. OnLoadCompleteListener onLoadCompleteListener:加载完成的回调
3. OnDrawListener:页面绘制的回调
4. String fileUrl : 文件的网络地址
5. String fileName 文件名称
3.使用android_pdf库方法
3.1写一个布局文件
```
?xml version="1.0" encoding="utf-8"?
RelativeLayout xmlns:android=""
xmlns:tools=""
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.lidong.pdf.androidpdf.MainActivity"
com.lidong.pdf.PDFView
android:id="@+id/pdfView"
android:layout_width="match_parent"
android:layout_height="match_parent"
/
/RelativeLayout
```
3.2在MainActivity中加载
```
import android.graphics.Canvas;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import com.lidong.pdf.PDFView;
import com.lidong.pdf.api.ApiManager;
import com.lidong.pdf.listener.OnDrawListener;
import com.lidong.pdf.listener.OnLoadCompleteListener;
import com.lidong.pdf.listener.OnPageChangeListener;
import com.lidong.pdf.util.FileUtils;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import okhttp3.ResponseBody;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action1;
import rx.schedulers.Schedulers;
public class MainActivity extends AppCompatActivity implements OnPageChangeListener
,OnLoadCompleteListener, OnDrawListener {
private PDFView pdfView ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pdfView = (PDFView) findViewById( R.id.pdfView );
displayFromFile1("", "00100000224821.pdf");
}
/**
* 获取打开网络的pdf文件
* @param fileUrl
* @param fileName
*/
private void displayFromFile1( String fileUrl ,String fileName) {
pdfView.fileFromLocalStorage(this,this,this,fileUrl,fileName); //设置pdf文件地址
}
/**
* 翻页回调
* @param page
* @param pageCount
*/
@Override
public void onPageChanged(int page, int pageCount) {
Toast.makeText( MainActivity.this , "page= " + page +
" pageCount= " + pageCount , Toast.LENGTH_SHORT).show();
}
/**
* 加载完成回调
* @param nbPages 总共的页数
*/
@Override
public void loadComplete(int nbPages) {
Toast.makeText( MainActivity.this , "加载完成" + nbPages , Toast.LENGTH_SHORT).show();
}
@Override
public void onLayerDrawn(Canvas canvas, float pageWidth, float pageHeight, int displayedPage) {
// Toast.makeText( MainActivity.this , "pageWidth= " + pageWidth + "
// pageHeight= " + pageHeight + " displayedPage=" + displayedPage , Toast.LENGTH_SHORT).show();
}
```
手机可以对PDF文件编辑,不过基本都是在电脑上操作,手机以迅捷PDF阅读器为例,
在首页打开PDF文件,点击左边第1个就可以编辑PDF文件,当然旁边还有很多功能,
手机不怎么编辑PDF文件,电脑编辑PDF文件比较多,这是手机编辑PDF文件的方法,还是在电脑上编辑比较方便,望采纳。
PDF阅读器概述Pdf阅读器是一款阅读Pdf文件和转换Pdf文件的工具。能够将当前页面转换成图片,支持的格式有:Bmp、Jpg、Png、Tif、Gif、Pcx。能够将页面转换成文本文件.支持目录功能。支持热链接。具有文本选择和查找功能。能够打开带密码的Pdf文档。可以用来查看和打印 便携文档格式 (PDF) 文件。您可以在大多数主要的操作系统上查看通过Foxit PDF Creator 、Foxit Phantom以及Adobe Acrobat以及更多应用程序创建的PDF文件。
之前一直用智器,感觉不错,专注阅读,不过在手机上用多看阅读比较多,界面动画切换漂亮,而且PDF重排的性能确实也不错。以下是他的介绍。支持PDF的单页、适合宽度、双页等多种阅读模式;
● 支持PDF页面放大缩小以及切边等操作;
● 支持PDF图文智能重排;
● 支持PDF文字拷贝、查字典、书摘、批注、搜索、微博分享;
● 支持带密码的PDF文档。
PDF (Portable Document Format) 文件格式是电子发行文档的事实上的标准,Adobe Acrobat Reader和Foxit Reader 是一个查看、阅读和打印和管理 PDF 文件的最佳工具。而且它是免费的。
pdf阅读器目前Adobe及Foxit 的最新中文版PDF阅读器版本是Adobe Reader 9、Foxit Reader3.1,国内最常用的是简体中文版PDF阅读器 Adobe Reader 7、Foxit Reader2.3\3.0\3.1.
首先在百度手机助手或者在别的别的第三方下载工具里下载ireader,如图所示。
2.下载下来软件之后安装在手机上。在手机文件管理器里找到pdf文件。
3.打开该文件,这时候自动会默认使用ireader软件打开。这时候会提示需要安装pdf组件。
4.点击确定之后会自动安装pdf组件。安装好之后,再次在文件管理器内打开pdf文件。这时候就可以阅读该文件了。
从本地选择图片生成pdf文件,由于Android本身并没有对pdf的支持,这里选择使用一个第三方的库来达成需求。
在众多Java语言编写的PDf库中,对Android有支持且有一定用户量的的有:iText、Qoppa qPDF工具包、PDFJet。
鉴于性能和开源,决定选择iText作为此次接入的PDF库。
If you want to use iText on Android or the Google App Engine, you need to use iTextG. iTextG is almost identical to iText, except that it only uses classes that are white-listed by Google. All references to java.awt, javax.nio and other "forbidden" packages have been removed.(在Android上使用iText,需要使用iTextG。iTextG与iText基本相同,只是替换掉了java.awt,javax.nio等Android上不支持的包。)