iOS基于CoreText实现的电子书阅读器

之前写小说类相关的应用,需要电子书阅读器,在网上找了很久,觉得还是https://github.com/GGGHub/Reader 同学的最好用,所以就拿这个用了。
不过后来发现里面的书签,笔记的定位功能,以及字体变化等功能有点问题,造成阅读者的不愉快,所以特意Fork了一个版本做了相应的修改,大家如果有类似的问题,可以试试我修改后的版本,在这里
https://github.com/Inspirelife96/Reader

如果大家有更好的阅读器,请推荐给我,万份感谢:)

Reader


基于Core Text实现的iOS客户端的电子书阅读器

支持ePub与text格式


2016.10.02 更新 (我做的修改)

针对text小说的bug fix。

  1. 当字体变化时,小说有时候不会自动调整界面。
  2. 当字体变化时,还有小说的书签,笔记定位不准确,甚至程序崩溃。3.

大概思路:

  1. 当字体变化时,所有小说的章节都会基于新的字体重新调整,分页等。
  2. 记录笔记/书签文字开始位置的在整个章节中的下标位置,笔记/书签定位时,基于当前的字体分页,看当前的下标位置是否坐落在哪一页中,然后跳转到那一页。

2016.06.16 更新 (以下都是LiSiYuan写的,非常好的库,我自认为没有他的水平,大家可以好好学习)

添加对ePub格式的支持


部分功能实现效果

iOS基于CoreText实现的电子书阅读器_第1张图片
Paste_Image.png

关于Reader

  1. 可以自动提取章节并生成目录
  2. 选取一段文字可进行复制,做笔记等功能
  3. 保存阅读进度,即使退出应用也可以继续之前的阅读
  4. 更改字体大小,进度跳转,主题更换等功能
  5. 支持txtePub格式的电子书文件

安装与使用

安装

  1. Reader目录下的所有文件都添加到工程中
  2. 由于解压ePub文件,需要用到开源的.c文件用于解压缩。所以使用时如果项目中有.pch文件参考本项目中.pch文件写法
#ifdef __OBJC__
//在.pch中这里写引用的.h文件与宏
#endif

3.需要导入libz.tbd

使用

text文件

   LSYReadPageViewController *pageView = [[LSYReadPageViewController alloc] init];
    NSURL *fileURL = [[NSBundle mainBundle] URLForResource:@"mdjyml"withExtension:@"txt"];
    pageView.resourceURL = fileURL;    //文件位置
    pageView.model = [LSYReadModel getLocalModelWithURL:fileURL];  //阅读模型
    [self presentViewController:pageView animated:YES completion:nil];

ePub文件

   LSYReadPageViewController *pageView = [[LSYReadPageViewController alloc] init];
    NSURL *fileURL = [[NSBundle mainBundle] URLForResource:@"细说明朝"withExtension:@"epub"];
    pageView.resourceURL = fileURL;    //文件位置
    pageView.model = [LSYReadModel getLocalModelWithURL:fileURL];  //阅读模型
    [self presentViewController:pageView animated:YES completion:nil];

提示

之前安装过的下载最新版,应把之前安装的卸载后再安装

说明

对于有图片和定制样式的epub文件只显示纯文本信息,因为对epub每个章节的html文件直接转成字符串来处理,css样式与epub自带的本地图片没有做处理。

你可能感兴趣的:(iOS基于CoreText实现的电子书阅读器)