如何在Android中获取PDF的当前页码

Mat*_*tia 2 pdf android

我必须在我的 Android 应用程序中实现一个自定义的 PDF 查看器,我已经实现了这个:

https://github.com/barteksc/AndroidPdfViewer

要打开我的 pdf,我使用了这个功能:

/* Load PDF in the activity */
private void openPDF(){
    File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() +"/Download/verbale.pdf");
    PDFView pdfView = (PDFView) findViewById(R.id.pdfView);

    pdfView.fromFile(file)
            .defaultPage(0)
            .enableAnnotationRendering(true)
            .onLoad(this)
            .onPageChange(this)
            .scrollHandle(new DefaultScrollHandle(this))
            .load();
}
Run Code Online (Sandbox Code Playgroud)

PDF 已正确呈现,但现在我需要在滚动期间获取页面的页码。

我怎么能做到这一点?

我试过用这个:

pdfView.getCurrentPage()
pdfView.getPageCount()
Run Code Online (Sandbox Code Playgroud)

但不是它不起作用......

解决方案

 @Override
    public void loadComplete(int nbPages) {
        totalPages = nbPages;
    }

@Override
public void onPageChanged(int page, int pageCount) {
    //Page contains che current page
}
Run Code Online (Sandbox Code Playgroud)

III*_*III 6

可以看一下AndroidPdfViewer的官方例子:链接


看看那个例子中的这两个片段:

1)创建您的PDFView:

pdfView.fromAsset(SAMPLE_FILE)
                .defaultPage(pageNumber)
                .onPageChange(this)
                .enableAnnotationRendering(true)
                .onLoad(this)
                .scrollHandle(new DefaultScrollHandle(this))
                .load();
Run Code Online (Sandbox Code Playgroud)

2) 并实现 onPageChanged(..):

@Override
public void onPageChanged(int page, int pageCount) {
    pageNumber = page;
    //do what you want with the pageNumber
}
Run Code Online (Sandbox Code Playgroud)

也不要忘记 implement OnPageChangeListener