Giter Site home page Giter Site logo

建议电子书增加目录 about dedao-dl HOT 13 CLOSED

yann0917 avatar yann0917 commented on August 16, 2024
建议电子书增加目录

from dedao-dl.

Comments (13)

yann0917 avatar yann0917 commented on August 16, 2024 2

电子书下载速度已优化,下载速度提升 6倍+

from dedao-dl.

yann0917 avatar yann0917 commented on August 16, 2024

倒也不用这么麻烦,wkhtmltopdf 识别目录的方式是 html 的 <h1> <h2> <h3> <h4> 之类的标签,只要电子书内容匹配到目录,根据目录等级设置成对应的 h 标签,目录和大纲都可以生成了。具体细节再解决就行,比如目录插到封面前面,目录没按等级缩进等等...

from dedao-dl.

xukai504087493 avatar xukai504087493 commented on August 16, 2024

倒也不用这么麻烦,wkhtmltopdf 识别目录的方式是 html 的 <h1> <h2> <h3> <h4> 之类的标签,只要电子书内容匹配到目录,根据目录等级设置成对应的 h 标签,目录和大纲都可以生成了。具体细节再解决就行,比如目录插到封面前面,目录没按等级缩进等等...

下载的 html 文件里似乎没有《h1 h2 h3 h4》这些标签,html文件里面的标题貌似只有加粗的标签(font-weight: bold)。所以建议可以以上述方案1的方式,直接先获取书的目录信息(比如通过监控request请求获取目录信息,如上图的目录结构信息,可能是个json数据?),按照方案1直接放到html文件的封面后面显示目录。

没有我可以写的,正在改还没推送代码,效果如下:

image

from dedao-dl.

xukai504087493 avatar xukai504087493 commented on August 16, 2024

wkhtmltopdf感觉转换后会有很多格式丢失(而且转换效率低,速度慢,感觉不是很好用),所以电子书还是用的html格式的打开的,能否增加上面提到的方案一,直接把获取到的目录信息放到html文档的开头部分。

或者可以用一个新的方案(方案三,感觉这个方案更完美)

方案三(分三步)
1.先直接先获取书的目录信息(比如通过监控request请求获取目录信息,如上图的目录结构信息,可能是个json数据?)
2.然后下载完电子书的html
3.通过匹配,查找html里的所有目录信息,替换目录的html标签(多级标签,分别用h1 h2 h3 h4等替换)

这样子三步生成的电子书html就完美包含了目录结构,同时用其他软件转html为其他格式,也会完美包含目录结构。

from dedao-dl.

yann0917 avatar yann0917 commented on August 16, 2024

wkhtmltopdf感觉转换后会有很多格式丢失(而且转换效率低,速度慢,感觉不是很好用),所以电子书还是用的html格式的打开的,能否增加上面提到的方案一,直接把获取到的目录信息放到html文档的开头部分。

或者可以用一个新的方案(方案三,感觉这个方案更完美)

方案三(分三步) 1.先直接先获取书的目录信息(比如通过监控request请求获取目录信息,如上图的目录结构信息,可能是个json数据?) 2.然后下载完电子书的html 3.通过匹配,查找html里的所有目录信息,替换目录的html标签(多级标签,分别用h1 h2 h3 h4等替换)

这样子三步生成的电子书html就完美包含了目录结构,同时用其他软件转html为其他格式,也会完美包含目录结构。

下载电子书流程是:获取电子书信息(目录/页面/章节) --> 按章节下载 svg -->解析 svg 到 html --> html 转成pdf。

方案 1 我试过了,用的锚点链接到具体的位置的,可以用,但是没有页码,没有大纲。你说的格式丢失是 svg 转 html 的时候就丢了一部分了。你说的速度慢是下载电子书速度慢,还是转化成 PDF 速度慢?下载电子书慢我已经优化流程了。我这边测试的转 pdf 很快的。

方案 3 流程更不对了,svg 转 html 的时候就可以替换成多级标签,而不是转成 html 之后再替换。。。

from dedao-dl.

xukai504087493 avatar xukai504087493 commented on August 16, 2024

---“svg 转 html 的时候就可以替换成多级标签”

为什么查看电子书的html源码时,源码里面没有h1 h2 h3 h4这些标签呢?

---“但是没有页码,没有大纲”

image

电子书里有目录信息的呀,这个信息是不是没有获取到? 还有页码其实没有关系,因为不同的版面页码无法确定,所以也不需要页码,只需要标题就行。

---“你说的速度慢是下载电子书速度慢,还是转化成 PDF 速度慢”

下载速度没问题,就是wkhtmltopdf这个工具觉得不好用,转换速度慢。另外我觉得转换后的pdf格式也不是很好用(分页和排版都不好用),基本都是用html格式来阅读电子书。

感谢您的回复,作者辛苦啦

from dedao-dl.

yann0917 avatar yann0917 commented on August 16, 2024

---“svg 转 html 的时候就可以替换成多级标签”

为什么查看电子书的html源码时,源码里面没有h1 h2 h3 h4这些标签呢?

---“但是没有页码,没有大纲”

image

电子书里有目录信息的呀,这个信息是不是没有获取到? 还有页码其实没有关系,因为不同的版面页码无法确定,所以也不需要页码,只需要标题就行。

---“你说的速度慢是下载电子书速度慢,还是转化成 PDF 速度慢”

下载速度没问题,就是wkhtmltopdf这个工具觉得不好用,转换速度慢。另外我觉得转换后的pdf格式也不是很好用(分页和排版都不好用),基本都是用html格式来阅读电子书。

感谢您的回复,作者辛苦啦

  1. 因为电子书是 按章节的 svg 格式的才是源码,html 是我解析每章 svg 之后合成的,这点可以参考 #4
  2. 电子书里有目录信息,第一步就获取到了。
  3. 如果你一定要方案 1,我可以单独构建一个给你 😅

from dedao-dl.

xukai504087493 avatar xukai504087493 commented on August 16, 2024

---“单独构建一个给你”

经过测试最新发布的v1.1.4版本,发现下载后的电子书,封面和正文分别被放到了单独的html文件,封面和正文里没有目录信息。

我的意思是电子书全部都下载成一个html文件,只是把目录放到封面和正文之间

麻烦您啦

from dedao-dl.

xukai504087493 avatar xukai504087493 commented on August 16, 2024

from dedao-dl.

yann0917 avatar yann0917 commented on August 16, 2024

我知道你的意思,我发布这个版本是为了PDF生成目录大纲,html 只是中间过渡文件,其实是要删除的。如果正文中有封面的话,生成的目录会在首页,封面在第二页,这样看起来很奇怪。所以正文中隐藏了封面,把封面单独摘出来,在wkhtmltopdf单独设置封面文件。

from dedao-dl.

xukai504087493 avatar xukai504087493 commented on August 16, 2024

嗯嗯,谢谢作者

还有个小的问题,电子书,如果不想生成pdf,能否增加一个参数,不转换为pdf,默认都是转换为pdf,占用了很多转换的时间。其实我只想下载html格式的电子书。

这个版本能否在v1.1.3版本的基础上增加(因为不需要将html的封面和正文分开)?

不尽的感谢🙏

from dedao-dl.

yann0917 avatar yann0917 commented on August 16, 2024

嗯嗯,谢谢作者

还有个小的问题,电子书,如果不想生成pdf,能否增加一个参数,不转换为pdf,默认都是转换为pdf,占用了很多转换的时间。其实我只想下载html格式的电子书。

这个版本能否在v1.1.3版本的基础上增加(因为不需要将html的封面和正文分开)?

不尽的感谢🙏

#138 已发布,-t 指定下载格式, 1:html, 2:PDF文档, 3:epub(开发中), 默认 html

from dedao-dl.

xukai504087493 avatar xukai504087493 commented on August 16, 2024

电子书下载速度已优化,下载速度提升 6倍+
提升速度飞快👍👍👍

from dedao-dl.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.