FishHawk / auto-novel

轻小说机翻网站,支持网络小说/文库小说/本地小说
https://books.fishhawk.top/
GNU General Public License v3.0
238 stars 28 forks source link

苹果 ibooks 图书应用 epub 阅读异常 #85

Open IronKinoko opened 4 weeks ago

IronKinoko commented 4 weeks ago

异常情况

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文件没有输出内容)

修复前后对比

修复前:页码显示不全,丢失原本排版

image

修复后:

image

附件

源文件.zip 网站下载文件.zip

FishHawk commented 3 weeks ago

文库小说我还没有想好。考虑到之后要做在线阅读,是不是该进一步解析文章内容,提取目录和章节,然后从文本重新生成epub小说呢?

竖版转横版倒是刻意为之了,绝大多数亚马逊买书上传的用户,都想要看横版的书。

IronKinoko commented 3 weeks ago

比较急需解决的是问题1,苹果设备显示异常。 输出的时候前后换行去掉

竖版放着吧,手机上竖版排布日+中,一页看不了几句话

FishHawk commented 3 weeks ago

问题1修了,暂时把格式化关了,等jsoup那边看看怎么说。 https://github.com/jhy/jsoup/issues/2141