在黑莓设备上阅读epub文件

4

你能告诉我如何启动黑莓的EPUB阅读器应用程序吗?

我希望找到最简单的方式来实现,是否有任何浏览器或UI组件可以读取和显示它?

我想从服务器下载它,然后向用户展示以便阅读。


我不知道,你寻求帮助... e-Pub基于ZIP、HTML和CSS。从OS V5.0开始,有一个BrowserField可以呈现HTML。所有版本的BB OS都支持使用HTTP获取文件。 - Richard
抱歉,也许我在阅读有关epub文件的内容时登录了错误的位置,我想我会尝试使用BrowserField来渲染它,但是为了解决我的问题,我读到RMSDK可以读取epub和pdf,但它不适用于j2me,它能被移植吗? - Abed Hawa
EPUB 3由四个规范组成:EPUB出版物3.0,定义了EPUB出版物的出版级语义和总体一致性要求。 EPUB内容文档3.0,定义了XHTML、SVG和CSS的配置文件,用于EPUB出版物的上下文中。 EPUB开放式容器格式(OCF)3.0,定义了一种文件格式和处理模型,用于将一组相关资源封装到单个文件(ZIP)EPUB容器中。 EPUB媒体叠加层3.0,定义了一种文本和音频同步的格式和处理模型。 - Richard
1个回答

2

几天前,这里添加了一个Epub阅读器库(链接)。我尝试使用它,但遇到了一些困难。它只能从资源中打开Epub,而不能从文件系统中打开。因此,我决定下载源代码并进行一些适应性调整。 首先,我编写了一个小函数来将Epub文件作为流打开:

public static InputStream GetFileAsStream(String fName) {
    FileConnection fconn = null;
    DataInputStream is = null;
    try {
        fconn = (FileConnection) Connector
                .open(fName, Connector.READ_WRITE);
        is = fconn.openDataInputStream();

    } catch (IOException e) {
        System.out.println(e.getMessage());
    return is;

然后,我更改了在com.omt.epubreader.domain.epub.java中打开文件的调用方式,如下所示:

public Book getBook(String url)
{
    InputStream in = ConnectionController.GetFileAsStream(url);

    ...
    return book;
}

之后,我成功读取了文件,但是出现了一个问题,它无法读取章节,也就是 .html 文件,所以我进行了一次短暂的调试会话,在找到问题之前,写那个库的人留下了读取 .html 文件名的代码空白,在 com.omt.epubreader.parser.NcxParser 中是这样的:

private void getBookNcxInfo()
{
    ...

    if(pars.getEventType() == XmlPullParser.START_TAG && 
                    pars.getName().toLowerCase().equals(TAG_CONTENT))
    {
        if(pars.getAttributeCount()>0)
        {

        }
    }

    ...
}

我刚刚在 if 语句中添加了这行代码:

contentDataFileName.addElement(pars.getAttributeValue("", "src"));

之后,它完美地工作了。

感谢发现Bug:请前往 latest version 获取API最新版本。 - Dhiral Pandya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接