package com.yq.ebook.utils;
import android.graphics.Bitmap;
import com.rockchip.ebookreader.jni.BookMetadata;
import com.rockchip.ebookreader.jni.JNIInterface;
public final class BookReaderUtils {
private static JNIInterface jniBook = new JNIInterface();
/**
* 获取书籍格式
* @param path 书籍路径
* @return 返回格式
*/
public static int getBookFormat(String path){
return jniBook.JNI_ereader_probe(path);
}
/**
* 验证目录索引是否存在 如果不存在 则创建目录索引
*
* @return
*/
public static int checkIndexDirectory(){
return jniBook.JNI_ereader_checkIndexDirectory();
}
/**
* 打开文档
* @param fileName 文档名称
* @param width 视图宽度
* @param height 视图高度
* @param fontDir 字库路径
* @param ttffont 字体名称
* @param fontSize 字体大小
* @param format 解码格式
* @return 文档句柄
*/
public static int openBook(String fileName,//文档名称
double width,//视图宽度
double height,//视图高度
String fontDir,//字库路径
String ttffont,//字体名称
double fontSize,//字体大小
int format){//解码格式
return jniBook.JNI_ereader_open(fileName,
width,
height,
fontDir,
ttffont,
fontSize,
format);
}
/**
* 解码页面
* @param handle 文档句柄
* @param bitmapObj 存储页面位图缓冲区
* @param indicator 解码指示符
* -1 上一页
* 0 当前页
* 1 下一页
* 2 指定页
* @param page 页码
* 当指示符为2时 需要指定解码页
* 其它情况为0
* @return
* -1 错误
* 0 首页》末页
* 正常情况返回页码
*/
public static int decodePage(int handle,
Bitmap bitmapObj,
int indicator,
int page){
return jniBook.JNI_ereader_decodePage(handle, bitmapObj, indicator, page);
}
/**
* 获取图书的元数据信息
* @param fileName 文档名称
* @param metadata 图书元数据
* @return
* 0 成功
* 其它 失败
*/
public static int getBookMetaData(String fileName,BookMetadata metadata){
return jniBook.JNI_ereader_get_metadata(fileName, metadata);
}
/**
* 根据文档句柄返回文档的总页数
* @param handle 文档句柄
* @return 文档总页数
*/
public static int getBookTotalPage(int handle){
return jniBook.JNI_ereader_get_total_page(handle);
}
/**
* 设置解码页面尺寸
* @param handle 文档句柄
* @param width 解码界面的宽度
* @param height 解码界面的高度
* @return
* 0 成功
* 其它 失败
*/
public static int setViewPort(int handle,double width,double height){
return jniBook.JNI_ereader_set_viewport(handle, width, height);
}
/**
* 设置字体的大小
* @param handle 文档句柄
* @param fontSize 字体大小
* @return
* 0 成功
* 其它 失败
*/
public static int setFontSize(int handle,int fontSize){
return jniBook.JNI_ereader_set_font_size(handle, fontSize);
}
/**
* 获取当前页的书签 文本
* @param handle 文档句柄
* @return
* 字符串数组
* 第一个元素 书签字符串
* 第二个元素 文本字符串
*/
public static String[]getBookMark(int handle){
return jniBook.JNI_ereader_get_bookmark(handle);
}
/**
* 跳到到书签
* @param handle 文档句柄
* @param bookMark 书签字符串
* @return
* 0 成功
* 其它 失败
* 跳转到书签后 需要重新解码
*/
public static int navigate2BookMark(int handle,String bookMark){
return jniBook.JNI_ereader_navigate_to_bookmark(handle, bookMark);
}
/**
* 获取图书封面
* @param fileName 文档名称
* @param width 封面位图宽度
* @param height 封面位图高度
* @param bitmapObj 用于存储封面的位图对象
* @return
* 0 成功
* 其它 失败
*/
public static int getBookCoverPage(String fileName,
int width,int height,
Bitmap bitmapObj){
return jniBook.JNI_ereader_get_CoverPage(fileName, width, height, bitmapObj);
}
/**
* 获取文档目录根节点
* @param handle 文档句柄
* @return
* 根节点句柄将用于获取子节点项目
*/
public static int getTocRoot(int handle){
return jniBook.JNI_ereader_GetTocRoot(handle);
}
/**
* 获取文档目录中指定节点的子节点数目
* @param tocHandle 节点句柄
* @return
* 子节点数目 用于逐个 迭代获取子节点项目
*/
public static int getTocChildCount(int tocHandle){
return jniBook.JNI_ereader_GetTocChildCount(tocHandle);
}
/**
* 获取文档目录某个节点下指定的节点项目
* @param tocHandle 节点句柄
* @param number 节点索引
* @return
* 子节点句柄
*/
public static int getTocChildItem(int tocHandle,int number){
return jniBook.JNI_ereader_GetTocChildItem(tocHandle, number);
}
/**
* 获取节点标签字符串
* @param tocHandle 节点句柄
* @return
* 节点标签字符串
*/
public static String getTocItemLable(int tocHandle){
return jniBook.JNI_ereader_GetTocItemLabel(tocHandle);
}
/**
* 跳转到指定的目录节点
* @param handle 文档句柄
* @param tocHandle 目录节点句柄
* @return
* 0 成功
* 其它 失败
*/
public static int go2TheToc(int handle,int tocHandle){
return jniBook.JNI_ereader_GoToTheToc(handle, tocHandle);
}
/*public static int getLinkInfo(int handle){
return jniBook.JNI_ereader_get_l
}*/
}
ad
最新推荐文章于 2023-02-21 16:53:59 发布