如何在Android中读取块文件并显示为pdf?

时间:2019-04-28 12:59:13

标签: android pdf

是否可以将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 :(得分:0)

您可以借助PDF线性化来实现。基本上,这是PDF的标准功能,其中数据以这种方式组织,以实现按需流内容。为此,您还需要使用支持线性化的PDF查看器(例如https://www.pdftron.com/documentation/android/guides/viewer/view-online-pdfs/