【问题标题】:reading epub file in blackberry在黑莓中读取 epub 文件
【发布时间】:2011-12-25 18:39:40
【问题描述】:

您能告诉我启动黑莓 Epub 阅读器应用程序的提示吗?

我想要最简单的方法,是否有任何浏览器或 UI 组件可以读取和显示它?

我想从服务器下载它然后查看给用户阅读。

【问题讨论】:

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

标签: blackberry java-me epub


【解决方案1】:

前几天,添加了一个Epub阅读器库here,我尝试使用它,但它有一些困难,它只能从资源打开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"));

然后,它就完美地工作了。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-14
  • 2017-04-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多