2011-12-25 87 views
4

你能告訴我一個啓動黑莓手機的Epub閱讀器應用程序的提示嗎?閱讀黑莓手機中的epub文件

我想要最簡單的方法來做到這一點,是否有任何瀏覽器或UI組件可以讀取&顯示呢?

我想從服務器下載它,然後查看它以供用戶閱讀。

+0

難道是這樣嗎? – 2011-12-25 20:17:24

+0

我不知道,你要求幫助......電子酒吧是基於ZIP,HTML和CSS。從OS V5.0開始,有一個BrowserField將呈現HTML。所有版本的BB OS都支持使用HTTP獲取文件。 – Richard 2011-12-26 13:43:59

+0

對不起,也許我在閱讀有關epub文件時登錄了錯誤的地方,我想我會嘗試用'BrowserField'渲染它,但爲了解決我的問題,我讀了RMSDK可以讀取epub和pdf,但它不適用於j2me,它可以被移植嗎? – 2011-12-26 15:16:26

回答

2

幾天前,我加入了一個Epub閱讀器庫here,我試過用它,但它有一些困難,它只能從資源打開Epubs,而不是從文件系統打開,所以我決定下載源碼並做一些改編。 首先,我寫了打開該電子版文件作爲一個流一個小功能:

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")); 

,並在此之後,它的工作只是完美。

+0

感謝您發現錯誤:請爲api查找[最新版本](https://sourceforge.net/projects/epubreader-omt/files/) – 2012-03-12 17:13:36