【OpenHarmony】鸿蒙开发之epublib

简介

Epublib是一个用于读取/写入/操作epub文件的ets库

效果展示:

下载安装

bash 复制代码
ohpm install @ohos/epublib

使用说明

示例代码

1.在entryAbility中引入GlobalContext

javascript 复制代码
import { GlobalContext } from '@ohos/epublib'

onWindowStageCreate(windowStage: window.WindowStage) {
// Main window is created, set main page for this ability
GlobalContext.getContext().setValue('filePath',this.context.filesDir)
}

2.在page页面中引入epublib

javascript 复制代码
import {DOMParser,EpubReader,EpubWriter, Book,Author,EpubResource,MediaType,Metadata,MediatypeService} from "@ohos/epublib"

3.使用

typescript 复制代码
  funcStart(input: string) {
    console.log("-----funcStart----filePath-----------------" + input)
    let result = EpubReader.readEpub(input);
    if (result != undefined) {
      result.then((book) => {
        this.text = book.getResources()
          .getResourceMap()
          .get("chapter_446465249.xhtml")
          .getStrData()
          .toString();
        console.error("----index-result-------" + this.text)
        this.testEpubWriter(book)

      });
    }
  }

DD一下: 欢迎大家关注工粽号<程序猿百晓生>,可以了解到以下知识点。

erlang 复制代码
`欢迎大家关注工粽号<程序猿百晓生>,可以了解到以下知识点学习。`
1.OpenHarmony开发基础
2.OpenHarmony北向开发环境搭建
3.鸿蒙南向开发环境的搭建
4.鸿蒙生态应用开发白皮书V2.0 & V3.0
5.鸿蒙开发面试真题(含参考答案) 
6.TypeScript入门学习手册
7.OpenHarmony 经典面试题(含参考答案)
8.OpenHarmony设备开发入门【最新版】
9.沉浸式剖析OpenHarmony源代码
10.系统定制指南
11.【OpenHarmony】Uboot 驱动加载流程
12.OpenHarmony构建系统--GN与子系统、部件、模块详解
13.ohos开机init启动流程
14.鸿蒙版性能优化指南
.......

接口说明

  1. 获取Book实例 readEpub(inPath:string, encoding?:string, lazyLoadedTypes?: Array<MediaType>):Book
  2. 通过resources读取电子书 readEpubToBook(resources:Resources, result?:Book):Book
  3. 惰性地从EPUB文件中读取并解析EPUB电子书 readEpubLazy(inPath: string, encoding?: string, lazyLoadedTypes?: Array<MediaType>): Book
  4. 获取构成该书的所有图像、章节、章节、xhtml文件、样式表等的集合 getResources(): Resources
  5. 获取该书内容。 getStrData()
  6. 写入Book内容 write(book: Book, fileName: string)
  7. 获取EPUB电子书的内容顺序 getSpine()
  8. 获取EPUB电子书的元数据 getMetadata()
  9. 向EPUB电子书中添加一个资源 addResource(resource: EpubResource): EpubResource
  10. 获取epub文件在文件夹中的位置 getHref()
  11. 通过压缩文件加载资源 loadResources(ZipFile zipFile, String defaultHtmlEncoding, List<MediaType> lazyLoadedTypes)
  12. 截取输出目录 outFile(inZipPath: string): string
  13. 设置作者 addAuthor(author: Author)
  14. 添加标题 addTitle(title: string): string
  15. 设置语言 setLanguage(language: string)

目录结构

lua 复制代码
|---- epublib  
|     |---- entry  # 示例代码文件夹
|     |---- epublib   # 电子书库文件夹
|         |---- index.ets 提供外部接口文件    
|             |---- src
|                 |---- main
|                     |---- ets
|                         |---- components
|                             |---- domain # 相关的book一系列数据model
|                             |---- epub   # 解析处理 
|                             |---- service # 定义了支持的媒体类型
|                             |---- util # 通用方法库
|                             |---- Constants.ets # 常量定义
|     |---- README.md  # 安装使用方法                  
相关推荐
键盘鼓手苏苏8 小时前
Flutter 三方库 p2plib 的鸿蒙化适配指南 - 实现高性能的端到端(P2P)加密通讯、支持分布式节点发现与去中心化数据流传输实战
flutter·harmonyos·鸿蒙·openharmony
加农炮手Jinx8 小时前
Flutter for OpenHarmony:postgrest 直接访问 PostgreSQL 数据库的 RESTful 客户端(Supabase 核心驱动) 深度解析与鸿蒙适配指南
数据库·flutter·华为·postgresql·restful·harmonyos·鸿蒙
加农炮手Jinx8 小时前
Flutter 组件 heart 适配鸿蒙 HarmonyOS 实战:分布式心跳监控,构建全场景保活检测与链路哨兵架构
flutter·harmonyos·鸿蒙·openharmony
钛态8 小时前
Flutter 三方库 http_mock_adapter — 赋能鸿蒙应用开发的高效率网络接口 Mock 与自动化测试注入引擎(适配鸿蒙 HarmonyOS Next ohos)
android·网络协议·flutter·http·华为·中间件·harmonyos
王码码20358 小时前
Flutter for OpenHarmony:Flutter 三方库 algoliasearch 毫秒级云端搜索体验(云原生搜索引擎)
android·前端·git·flutter·搜索引擎·云原生·harmonyos
王码码20358 小时前
Flutter 三方库 dns_client 的鸿蒙化适配指南 - 告别 DNS 劫持、探索 DNS-over-HTTPS (DoH) 技术、构建安全的鸿蒙网络请求环境
flutter·harmonyos·鸿蒙·openharmony·dns_client
键盘鼓手苏苏8 小时前
Flutter 组件 highlighter 适配鸿蒙 HarmonyOS 实战:高性能语法高亮,构建大规模代码分析与文本染色架构
flutter·harmonyos·鸿蒙·openharmony
国医中兴8 小时前
Flutter 三方库 langchain_google 的鸿蒙化适配指南 - 链接 Gemini 智慧中枢、LangChain AI 实战、鸿蒙级智能应用专家
flutter·langchain·harmonyos
左手厨刀右手茼蒿8 小时前
Flutter for OpenHarmony: Flutter 三方库 shamsi_date 助力鸿蒙应用精准适配波斯历法(中东出海必备)
android·flutter·ui·华为·自动化·harmonyos
雷帝木木8 小时前
Flutter 三方库 http_client_interceptor 的鸿蒙化适配指南 - 实现原生 HttpClient 的全量请求拦截、支持端侧动态 Headers 注入与网络流量审计实战
flutter·harmonyos·鸿蒙·openharmony·http_client_interceptor