auto-novel icon indicating copy to clipboard operation
auto-novel copied to clipboard

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

Open IronKinoko opened this issue 1 year ago • 7 comments

异常情况

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缺失的属性加上

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

修复后: image

附件

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

IronKinoko avatar Jun 07 '24 02:06 IronKinoko

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

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

FishHawk avatar Jun 09 '24 13:06 FishHawk

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

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

IronKinoko avatar Jun 10 '24 09:06 IronKinoko

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

FishHawk avatar Jun 10 '24 16:06 FishHawk

截屏2024-08-16 16 35 39

在下载时发现问题似乎并没有被解决,原因不明。可以按照IronKinoko的方法手动解决,不确定是否在所有书籍上都会发生。同时部分版本的iBooks修复了识别问题,但仍然有会触发此问题的最新os版本设备。

gitboy14 avatar Aug 16 '24 08:08 gitboy14

在下载时发现问题似乎并没有被解决,原因不明。可以按照IronKinoko的方法手动解决,不确定是否在所有书籍上都会发生。同时部分版本的iBooks修复了识别问题,但仍然有会触发此问题的最新os版本设备。

有可能是服务器缓存的旧文件。试试随便点下翻译,再下载,触发下重新生成文件。

FishHawk avatar Aug 16 '24 10:08 FishHawk

有可能是服务器缓存的旧文件。试试随便点下翻译,再下载,触发下重新生成文件。

谢谢你的帮助。但是在尝试过之后问题依然存在。而且确认了,大部分其他书籍没有此问题。 截屏2024-08-16 20 37 01 截屏2024-08-16 20 39 20

gitboy14 avatar Aug 16 '24 12:08 gitboy14

mark,我来处理一下这个。

kurikomoe avatar Mar 01 '25 08:03 kurikomoe