苹果 ibooks 图书应用 epub 阅读异常
异常情况
1. epub下载后发现内容异常,表现为每章只显示第一页
原因
经过对比源文件与网站生成的文件,发现 content.opf 文件的<metadata> 里的值都被格式化换行了
<!-- 源文件 -->
<dc:language>ja</dc:language>
<!-- 网站生成的文件 -->
<dc:language>
ja
</dc:language>
我逐个排查后发现 ibooks 对格式化后的 <dc:language> 适配异常,最终导致渲染异常
解决方案
别格式化输出xml
2. css文件没有输出内容
这个表现为源文件里的css内容没生成出来,造成部分小说原本样式丢失
3. 竖向右至左读排版异常
这个表现是源文件里 <metadata> 中包含了 <meta name="primary-writing-mode" content="vertical-rl"/> 属性,生成的文件中 <spine> 缺少了 page-progression-direction="rtl" 属性,导致翻页是从左往右
content.opt 文件
<metadata>
<meta name="primary-writing-mode" content="vertical-rl"/>
</metadata>
- <spine toc="ncx">
+ <spine toc="ncx" page-progression-direction="rtl">
竖版右往左读还需要配合css实现(目前css文件没有输出内容)
修复前后对比
- 去掉metadata前后换行
- 把源文件中的css复制过来
- 把spine缺失的属性加上
修复前:页码显示不全,丢失原本排版
修复后:
附件
文库小说我还没有想好。考虑到之后要做在线阅读,是不是该进一步解析文章内容,提取目录和章节,然后从文本重新生成epub小说呢?
竖版转横版倒是刻意为之了,绝大多数亚马逊买书上传的用户,都想要看横版的书。
比较急需解决的是问题1,苹果设备显示异常。 输出的时候前后换行去掉
竖版放着吧,手机上竖版排布日+中,一页看不了几句话
问题1修了,暂时把格式化关了,等jsoup那边看看怎么说。 https://github.com/jhy/jsoup/issues/2141
在下载时发现问题似乎并没有被解决,原因不明。可以按照IronKinoko的方法手动解决,不确定是否在所有书籍上都会发生。同时部分版本的iBooks修复了识别问题,但仍然有会触发此问题的最新os版本设备。
在下载时发现问题似乎并没有被解决,原因不明。可以按照IronKinoko的方法手动解决,不确定是否在所有书籍上都会发生。同时部分版本的iBooks修复了识别问题,但仍然有会触发此问题的最新os版本设备。
有可能是服务器缓存的旧文件。试试随便点下翻译,再下载,触发下重新生成文件。
有可能是服务器缓存的旧文件。试试随便点下翻译,再下载,触发下重新生成文件。
谢谢你的帮助。但是在尝试过之后问题依然存在。而且确认了,大部分其他书籍没有此问题。
mark,我来处理一下这个。