I am using epublib to read a .epub file in a WebView.
WebView wv = (WebView) getView().findViewById(R.id.chaptercontent);
try {
String abspath = FILEPATH+file;
File filePath = new File(abspath+".epub");
InputStream epubInputStream = new BufferedInputStream(new FileInputStream(filePath));
book = (new EpubReader()).readEpub(epubInputStream);
int pos = abspath.lastIndexOf('/');
DownloadResource(abspath.substring(0, pos));
try {
for(int i = 1; i< book.getContents().size(); i++) {
InputStream is = book.getSpine().getSpineReferences().get(i).getResource().getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null)
{
sb.append(line + "\n");
Log.d("display line", line);
}
is.close();
wv.loadDataWithBaseURL(abspath.substring(0, pos)+"/", sb.toString(), "text/html", "utf-8", null);
}
}
catch(IOException e) {
Log.e("IOException", e.getMessage());
}
}
catch (IOException e) {
Log.e("epublib", e.getMessage());
}
private void DownloadResource(String directory) {
try {
nl.siegmann.epublib.domain.Resources rst = book.getResources();
Collection<Resource> clrst = rst.getAll();
Iterator<Resource> itr = clrst.iterator();
Log.d("Downlod path", directory);
while (itr.hasNext()) {
Resource rs = itr.next();
if ((rs.getMediaType() == MediatypeService.JPG) || (rs.getMediaType() == MediatypeService.PNG) || (rs.getMediaType() == MediatypeService.GIF) || rs.getMediaType() == MediatypeService.CSS) {
File oppath1 = new File(directory+File.separator+rs.getHref());
Log.d("Resource Name - ", rs.getHref());
oppath1.createNewFile();
Log.d("Oppath - ", oppath1.getAbsolutePath());
Log.d("File Checking - ", "Exists - "+oppath1.exists()+" & Write - "+oppath1.canWrite());
FileOutputStream fos1 = new FileOutputStream(oppath1);
fos1.write(rs.getData());
fos1.close();
}
}
}
catch (IOException e) {
Log.e("error", e.getMessage());
}
}
The DownloadResource works fine. The resources are fetched. But the WebView is not displaying the image. The images are in the same directory as the epub file. The WebView gives me this: