Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用epublib逐页读取epub文件_Java_Android_Epub_Epublib - Fatal编程技术网

Java 使用epublib逐页读取epub文件

Java 使用epublib逐页读取epub文件,java,android,epub,epublib,Java,Android,Epub,Epublib,我正在开发一个应用程序,我想使用epublib一页一页地阅读epub文件,并在应用程序中显示,我能够按章节获取书籍的所有内容,现在我想按页面获取内容,如果您有任何想法,请回答,提前感谢 下面是我用来获取本书章节内容的代码 public String getText(String filepath) { String linez = ""; File f = new File(filepath); InputStream epubInputStream = nu

我正在开发一个应用程序,我想使用epublib一页一页地阅读epub文件,并在应用程序中显示,我能够按章节获取书籍的所有内容,现在我想按页面获取内容,如果您有任何想法,请回答,提前感谢

下面是我用来获取本书章节内容的代码

    public String getText(String filepath) {

    String linez = "";
    File f = new File(filepath);

    InputStream epubInputStream = null;
    try {
        epubInputStream = new FileInputStream(f);
    } catch (FileNotFoundException e2) {
        // TODO Auto-generated catch block
        e2.printStackTrace();
    }

    Book book = null;
    try {
        book = (new EpubReader()).readEpub(epubInputStream);
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    Spine spine = book.getSpine();
    List<SpineReference> spineList = spine.getSpineReferences();
    int count = spineList.size();
    txtpages.setText("Size:" + Integer.toString(count) + "\n");
    StringBuilder string = new StringBuilder();
    for (int i = 0; count > i; i++) {
        Resource res = spine.getResource(i);

        try {
            InputStream is = res.getInputStream();
            BufferedReader reader = new BufferedReader(
                    new InputStreamReader(is));
            try {
                while ((line = reader.readLine()) != null) {
                    linez = string.append(line + "\n").toString();
                }

            } catch (IOException e) {
                e.printStackTrace();
            }

            // do something with stream
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    //webView.loadData(linez, "text/html", "utf-8");


    return linez;
}
公共字符串getText(字符串文件路径){
字符串linez=“”;
文件f=新文件(文件路径);
InputStream epubInputStream=null;
试一试{
epubInputStream=新文件输入流(f);
}捕获(FileNotFoundException e2){
//TODO自动生成的捕捉块
e2.printStackTrace();
}
Book=null;
试一试{
book=(新的EpubReader()).readEpub(epubInputStream);
}捕获(IOE1异常){
//TODO自动生成的捕捉块
e1.printStackTrace();
}
Spine Spine=book.getSpine();
List spineList=spine.getSpineReferences();
int count=spineList.size();
setText(“大小:“+Integer.toString(count)+”\n”);
StringBuilder字符串=新的StringBuilder();
对于(int i=0;计数>i;i++){
Resource res=spine.getResource(i);
试一试{
InputStream is=res.getInputStream();
BufferedReader reader=新的BufferedReader(
新的InputStreamReader(is));
试一试{
而((line=reader.readLine())!=null){
linez=string.append(line+“\n”).toString();
}
}捕获(IOE异常){
e、 printStackTrace();
}
//用小溪做点什么
}捕获(IOE异常){
e、 printStackTrace();
}
}
//loadData(linez,“text/html”、“utf-8”);
返回线Z;
}

您可以使用将epub文件逐页分离。尽管它仍然有一些问题,但它还是完成了它的工作。

你需要澄清你所说的“现在我想按页面获取内容”是什么意思。您的意思是要对EPUB的每个XHTML文件进行分页吗?如果是这样,您需要插入自己的CSS并将CSS+XHTML加载到WebView中,或者您需要在Java代码中拆分XHTML内容。是的,我想对每个XHTML进行分页,然后您才能找到如何分页的答案。@ArunavhKrishnan Krishnan我没有找到解决方案试试这个