2015-05-27 5 views
1

Можете ли вы помочь мне узнать количество страниц PDF-документа на Android, которое будет поддерживать, по крайней мере, версию api 16. Я извлекаю информацию о документе, но не вижу решения, чтобы получить общее количество страниц. Это то, что я до сих пор д.о.о.:Как получить количество страниц PDF-файла в Android?

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); 
    } 
+0

Это может быть полезно для вас http://stackoverflow.com/ Вопросы/6026971/page-count-of-pdf-with-java –

+0

@BidhanA Это не шов, как есть файл PDFReader. – Sulby

ответ

2

попробовать что-то вроде этого:

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

Надеюсь, это может вам помочь! –

+0

@ «Крупа Патель» Будет ли это поддерживать до версии для Android версии 16? Извините за то, что я не понимаю. – Sulby

+0

Я не могу найти объект PdfReader в Android Studio или в онлайн-документации :( – Sulby

0

Попробуйте это:

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(); 
    } 
} 
Смежные вопросы