Как читать чанки и показывать как pdf в андроиде? - PullRequest
2 голосов
/ 28 апреля 2019

Можно ли преобразовать файл PDF в несколько фрагментов, а затем прочитать эти фрагменты и отобразить эти фрагменты в PdfViewer android?Если это возможно, пожалуйста, сообщите мне, как это сделать.

Я нашел этот метод для преобразования pdf в куски:

private void getBytesFromFile(File file) throws IOException {
    FileInputStream is = new FileInputStream(file); //videorecorder stores video to file

    java.nio.channels.FileChannel fc = is.getChannel();
    java.nio.ByteBuffer bb = java.nio.ByteBuffer.allocate(10000);

    int chunkCount = 0;

    byte[] bytes;

    while(fc.read(bb) >= 0){
        bb.flip();
        //save the part of the file into a chunk
        bytes = bb.array();
        storeByteArrayToFile(bytes, mRecordingFile + "." + chunkCount);//mRecordingFile is the (String)path to file
        chunkCount++;
        bb.clear();
    }
}

private void storeByteArrayToFile(byte[] bytesToSave, String path) throws IOException {
    FileOutputStream fOut = new FileOutputStream(path);
    try {
        fOut.write(bytesToSave);
    }
    catch (Exception ex) {
        Log.e("ERROR", ex.getMessage());
    }
    finally {
        fOut.close();
    }
}

Я использовал AndroidPdfViewer для отображения pdf, ноЕсли вы знаете другую библиотеку или метод для отображения PDF, пожалуйста, укажите это.Спасибо.

1 Ответ

0 голосов
/ 29 апреля 2019

Этого можно добиться с помощью линеаризации PDF.По сути, это стандартная функция в PDF, где данные организованы таким образом, чтобы обеспечить потоковую передачу содержимого по требованию.Чтобы это работало, вам также необходимо использовать средство просмотра PDF, которое поддерживает линеаризацию (например, https://www.pdftron.com/documentation/android/guides/viewer/view-online-pdfs/)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...