Android 读取pdf文档?

1.AndroidManifest.xml加入读写权限

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

2.在项目Module 下build.gradle 文件引用下lib资源

dependencies {
    ...
    implementation 'com.joanzapata.pdfview:android-pdfview:1.0.4@aar'
}

3.activity_main.xml加入pdf view 控件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.joanzapata.pdfview.PDFView
        android:id="@+id/pdfView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerVertical="true" />

    <Button
        android:layout_width="200dp"
        android:layout_height="80dp"
        android:gravity="center"
        android:onClick="readPDF"
        android:text="Read Start"
        android:textColor="@android:color/holo_red_light"
        android:textSize="26sp" />

</RelativeLayout>

4.MainActivity.java读取并显示PDF文件内容

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "jack";
    private static final String FILE_PATH = "/storage/udisk1/udisk10/0709-COWIN-UI视觉规范-冻结稿.pdf";

    private PDFView pdfView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_main);
        initViews();
    }

    private void initViews() {
        pdfView = (PDFView)findViewById(R.id.pdfView);
    }

    public void readPDF(View v){
        pdfView.fromFile(new File(FILE_PATH))   //设置pdf文件地址
                .defaultPage(1)         //设置默认显示第1页
                .onPageChange(mOnPageChangeListener)     //设置翻页监听
                .onLoad(mOnLoadCompleteListener)           //设置加载监听
                .onDraw(mOnDrawListener)            //绘图监听
                .showMinimap(false)     //pdf放大的时候,是否在屏幕的右上角生成小地图
                .swipeVertical( false )  //pdf文档翻页是否是垂直翻页,默认是左右滑动翻页
                .enableSwipe(true)   //是否允许翻页,默认是允许翻
                // .pages( 2 , 3 , 4 , 5  )  //把2 , 3 , 4 , 5 过滤掉
                .load();
    }

    private OnPageChangeListener mOnPageChangeListener = new OnPageChangeListener(){
        @Override
        public void onPageChanged(int page, int pageCount) {
            Log.i(TAG,"onPageChanged() ...page : "+page+" ,pageCount: "+pageCount);
        }
    };

    private OnLoadCompleteListener mOnLoadCompleteListener = new OnLoadCompleteListener(){
        @Override
        public void loadComplete(int nbPages) {
            Log.i(TAG,"loadComplete() ...nbPages : "+nbPages);
        }
    };

    private OnDrawListener mOnDrawListener = new OnDrawListener(){
        @Override
        public void onLayerDrawn(Canvas canvas, float pageWidth, float pageHeight, int displayedPage) {

        }
    };
}

效果展示:

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值