如何在Android中获取pdf文件的页数?

时间:2015-05-27 13:05:19

标签: android pdf fileinfo

你能帮我查一下Android上pdf文档的页数,它至少支持api 16版本。我正在提取文档信息但看不到解决方案来获取页面总数。这就是我到目前为止所做的事情:

private void extractDocumentDataFromUri(Uri uri)
    {
        String[] dataFileds = new String[]{
                MediaStore.MediaColumns.DATA,
                OpenableColumns.DISPLAY_NAME,
                OpenableColumns.SIZE};

        Cursor cursor = context.getContentResolver().query(uri, dataFileds, null, null, null);
        cursor.moveToFirst();

        contentUrl = cursor.getString(cursor.getColumnIndex(MediaStore.MediaColumns.DATA));
        title = cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME));
        size = cursor.getInt(cursor.getColumnIndex(OpenableColumns.SIZE));

        cursor.close();

        contentType = context.getContentResolver().getType(uri);
    }

2 个答案:

答案 0 :(得分:4)

如果您将iTextG库添加到libs文件夹,此解决方案将起作用。该库包含一个名为 PdfReader 的类。

尝试这样的事情:

PdfReader reader = new PdfReader("Your file path");
int aa = reader.getNumberOfPages();

答案 1 :(得分:2)

试试这个:

private void countPages(File pdfFile) throws IOException {
    try {

        ParcelFileDescriptor parcelFileDescriptor = ParcelFileDescriptor.open(pdfFile, ParcelFileDescriptor.MODE_READ_ONLY);
        PdfRenderer pdfRenderer = null;
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
            pdfRenderer = new PdfRenderer(parcelFileDescriptor);
            totalpages = pdfRenderer.getPageCount();
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
}