Comments (13)
电子书下载速度已优化,下载速度提升 6倍+
from dedao-dl.
倒也不用这么麻烦,wkhtmltopdf
识别目录的方式是 html 的 <h1> <h2> <h3> <h4>
之类的标签,只要电子书内容匹配到目录,根据目录等级设置成对应的 h 标签,目录和大纲都可以生成了。具体细节再解决就行,比如目录插到封面前面,目录没按等级缩进等等...
from dedao-dl.
倒也不用这么麻烦,
wkhtmltopdf
识别目录的方式是 html 的<h1> <h2> <h3> <h4>
之类的标签,只要电子书内容匹配到目录,根据目录等级设置成对应的 h 标签,目录和大纲都可以生成了。具体细节再解决就行,比如目录插到封面前面,目录没按等级缩进等等...
下载的 html 文件里似乎没有《h1 h2 h3 h4》这些标签,html文件里面的标题貌似只有加粗的标签(font-weight: bold)。所以建议可以以上述方案1的方式,直接先获取书的目录信息(比如通过监控request请求获取目录信息,如上图的目录结构信息,可能是个json数据?),按照方案1直接放到html文件的封面后面显示目录。
没有我可以写的,正在改还没推送代码,效果如下:
from dedao-dl.
wkhtmltopdf感觉转换后会有很多格式丢失(而且转换效率低,速度慢,感觉不是很好用),所以电子书还是用的html格式的打开的,能否增加上面提到的方案一,直接把获取到的目录信息放到html文档的开头部分。
或者可以用一个新的方案(方案三,感觉这个方案更完美)
方案三(分三步)
1.先直接先获取书的目录信息(比如通过监控request请求获取目录信息,如上图的目录结构信息,可能是个json数据?)
2.然后下载完电子书的html
3.通过匹配,查找html里的所有目录信息,替换目录的html标签(多级标签,分别用h1 h2 h3 h4等替换)
这样子三步生成的电子书html就完美包含了目录结构,同时用其他软件转html为其他格式,也会完美包含目录结构。
from dedao-dl.
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.
---“svg 转 html 的时候就可以替换成多级标签”
为什么查看电子书的html源码时,源码里面没有h1 h2 h3 h4这些标签呢?
---“但是没有页码,没有大纲”
电子书里有目录信息的呀,这个信息是不是没有获取到? 还有页码其实没有关系,因为不同的版面页码无法确定,所以也不需要页码,只需要标题就行。---“你说的速度慢是下载电子书速度慢,还是转化成 PDF 速度慢”
下载速度没问题,就是wkhtmltopdf这个工具觉得不好用,转换速度慢。另外我觉得转换后的pdf格式也不是很好用(分页和排版都不好用),基本都是用html格式来阅读电子书。
感谢您的回复,作者辛苦啦
from dedao-dl.
---“svg 转 html 的时候就可以替换成多级标签”
为什么查看电子书的html源码时,源码里面没有h1 h2 h3 h4这些标签呢?
---“但是没有页码,没有大纲”
电子书里有目录信息的呀,这个信息是不是没有获取到? 还有页码其实没有关系,因为不同的版面页码无法确定,所以也不需要页码,只需要标题就行。
---“你说的速度慢是下载电子书速度慢,还是转化成 PDF 速度慢”
下载速度没问题,就是wkhtmltopdf这个工具觉得不好用,转换速度慢。另外我觉得转换后的pdf格式也不是很好用(分页和排版都不好用),基本都是用html格式来阅读电子书。
感谢您的回复,作者辛苦啦
- 因为电子书是 按章节的 svg 格式的才是源码,html 是我解析每章 svg 之后合成的,这点可以参考 #4
- 电子书里有目录信息,第一步就获取到了。
- 如果你一定要方案 1,我可以单独构建一个给你 😅
from dedao-dl.
---“单独构建一个给你”
经过测试最新发布的v1.1.4版本,发现下载后的电子书,封面和正文分别被放到了单独的html文件,封面和正文里没有目录信息。
我的意思是电子书全部都下载成一个html文件,只是把目录放到封面和正文之间
麻烦您啦
from dedao-dl.
from dedao-dl.
我知道你的意思,我发布这个版本是为了PDF生成目录大纲,html 只是中间过渡文件,其实是要删除的。如果正文中有封面的话,生成的目录会在首页,封面在第二页,这样看起来很奇怪。所以正文中隐藏了封面,把封面单独摘出来,在wkhtmltopdf单独设置封面文件。
from dedao-dl.
嗯嗯,谢谢作者
还有个小的问题,电子书,如果不想生成pdf,能否增加一个参数,不转换为pdf,默认都是转换为pdf,占用了很多转换的时间。其实我只想下载html格式的电子书。
这个版本能否在v1.1.3版本的基础上增加(因为不需要将html的封面和正文分开)?
不尽的感谢🙏
from dedao-dl.
嗯嗯,谢谢作者
还有个小的问题,电子书,如果不想生成pdf,能否增加一个参数,不转换为pdf,默认都是转换为pdf,占用了很多转换的时间。其实我只想下载html格式的电子书。
这个版本能否在v1.1.3版本的基础上增加(因为不需要将html的封面和正文分开)?
不尽的感谢🙏
#138 已发布,-t 指定下载格式, 1:html, 2:PDF文档, 3:epub(开发中), 默认 html
from dedao-dl.
电子书下载速度已优化,下载速度提升 6倍+
提升速度飞快👍👍👍
from dedao-dl.
Related Issues (20)
- 讲数比较多的时候下载会卡住。能不能提供单独下载章节或者讲数的接口 HOT 1
- 下载电子书时runtime error HOT 3
- can't download ebook HOT 1
- Can't download pdf books HOT 10
- 下载张宏杰的《曾国藩传》pdf格式电子书,出现乱码 HOT 3
- 无法登陆 HOT 3
- 获取ebook列表时出错了 HOT 2
- 能不能出个 MAC 版? HOT 1
- 关于'config.json',但是实际项目中并无该文件。 HOT 2
- 序号列表的第一行解析错位 HOT 1
- Error: XML syntax error on line 10376: invalid UTF-8 HOT 2
- 下载不全
- 无法加载登入二维码
- pdf 格式电子书目录不正确
- Invalid UTF8 HOT 9
- Error: XML syntax error on line 9784: invalid UTF-8,导致无法生成epub格式的文件 HOT 1
- ebook html 文件生成失败 HOT 4
- 下载音频文件出现认证失败 Server returned 401 Unauthorized (authorization failed) HOT 1
- 内文插入式注释保存htmls时出错 HOT 3
- 下载电子书出错“Error: XML syntax error on line 25492: invalid UTF-8” HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dedao-dl.