ad

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
	}*/
	
	
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值