我正在制作一款epub阅读器
我希望像fbreader一样进行分页
现在我已经有了fbreader的源代码,但我不知道它是在哪里实现分页的
除了分页,我已经完成了其他功能的实现
我只需要从fbreader获取分页部分的代码
是否有人做过类似的事情?
感谢您抽出时间来阅读这个问题。
附注:分页是将html文件根据屏幕大小、字体大小和语言等考虑因素拆分成页面。当更改字体大小时,页面数也会相应更改。而epub文件内容是以html格式呈现的。
我正在制作一款epub阅读器
我希望像fbreader一样进行分页
现在我已经有了fbreader的源代码,但我不知道它是在哪里实现分页的
除了分页,我已经完成了其他功能的实现
我只需要从fbreader获取分页部分的代码
是否有人做过类似的事情?
感谢您抽出时间来阅读这个问题。
附注:分页是将html文件根据屏幕大小、字体大小和语言等考虑因素拆分成页面。当更改字体大小时,页面数也会相应更改。而epub文件内容是以html格式呈现的。
size_t ZLTextView::pageNumber() const {
if (textArea().isEmpty()) {
return 0;
}
std::vector<size_t>::const_iterator i = nextBreakIterator();
const size_t startIndex = (i != myTextBreaks.begin()) ? *(i - 1) : 0;
const size_t endIndex = (i != myTextBreaks.end()) ? *i :
textArea().model()->paragraphsNumber();
return (myTextSize[endIndex] - myTextSize[startIndex]) / 2048 + 1;
}
private synchronized int computeTextPageNumber(int textSize) {
if (myModel == null || myModel.getParagraphsNumber() == 0) {
return 1;
}
final float factor = 1.0f / computeCharsPerPage();
final float pages = textSize * factor;
return Math.max((int)(pages + 1.0f - 0.5f * factor), 1);
}
org.geometerplus.zlibrary.text.view.TextView
中。