首页
首页
BOT
沸点
课程
直播
活动
AI刷题
NEW
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
爱编程的Mark
掘友等级
前端工程师
需要恒心、耐心,才能成为优秀的前端工程师。欢迎大家多多访问我的个人网站,所有文章会优先发布于我的个人网站。 个人网站:https://immortalboy.cn 个人开源项目:https://github.com/callmehui/web-music-player
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
184
文章 136
沸点 48
赞
184
返回
|
搜索文章
赞
文章( 136 )
沸点( 48 )
pincman
CTO @你猜
·
2年前
举报
Toome-开源一个vite+ts+react+zustand的后台管理面板
github.com
React18最佳实践
v.pincman.com
优秀开源项目
分享
2
7
柠檬派
后端查表仔 @家里蹲有限公司
·
2年前
举报
4月26日 星期二 晴 开心
今天她终于约我出去吃饭了,好开心,到了火锅店我发现,她正和另一个男孩子坐一起,她想得真周到,叫上其他人不会容易冷场,我走过去发现他们好像已经吃完了,她说你别吃了去买一下单,她真贴心,知道我最近减肥不能吃太多。我更爱她了!
#恋爱中的最幸福的小事#
展开
分享
3
2
用户q644922466
前端
·
2年前
举报
echarts 案例
MCChart
echarts.zhangmuchen.top
技术交流圈
分享
评论
1
RedHood
前端工程师 @腾讯
·
2年前
举报
将过去一年工作和学习中用到的组件整合在一起搞了个 UI 库:
luna.liriliri.io
优秀开源项目
分享
1
16
Xiecj
前端摸鱼王 @啥事不干科技
·
3年前
举报
菜鸡音乐
基于Vue的响应式音乐播放器
项目地址:
github.com
在线预览:
music.xcj.im
GitHub - ixcj/caiji-music: 基于Vue的响应式音乐播放器
github.com
优秀开源项目
分享
12
7
踏仙
3年前
举报
人活着应该是为了整点薯片吧
收起
查看大图
向左旋转
向右旋转
上班摸鱼
分享
6
3
囚阳
3年前
举报
今天真开心呀!兄弟脱单,我等到了她的晚安!
分享
8
3
爱编程的Mark
前端工程师
·
3年前
举报
分享一个html转pdf的个人思路,当然我还没实现,由于能力和花费时间的原因。
目前我了解到的html转pdf的开源库或者说是在线工具,转换后的效果都不太好。有的会有链接转换后无法点击,或者字体变化了。
我的思路是把html转成markdown,再把markdown转成pdf。markdown的呈现效果转换为pdf后基本是一致的,所以就要考虑如何让html在markdown里显示符合预期。
第一步,html中的css、id、元素标签的样式,内联样式,都需要转换成style写入到每个标签本身的样式里;
第二步,把所有样式里的em、rem替换为对应的px,保证markdown显示效果的一致性;
第三步,压缩这一段html代码,因为html代码自带的缩进会被markdown编辑器识别为代码或者纯文本,百度可以搜索到在线的代码压缩的工具;
第四步,把可识别的html代码放到markdown编辑器中,导出pdf文件。
这里有几个难点,我说一下个人思路。
第一个,如何把所有的css样式替换为内部的style?
答:
1. 获取html文件所有引入的样式可以使用"document.styleSheets"获取html页面中所有的css代码,"document.styleSheets"会返回多个对象(需要用try/catch包裹,不然浏览器会有同源报错,属于浏览器自身的bug),每个对象对应一个css文件或者内联样式(<style></style>中的css代码),顺序按照文件顺序、优先级返回。
2. 然后遍历要转换的html的根结点,递归所有子节点,获取每个节点的css样式,代码可以是:
ele.getAttribute('class'); // 返回元素的class字符串;
然后根据返回的每个class来从上面获取的所有css文件里的class依次进行获取,最后设置到每个节点的style属性上;(过于复杂,很难实现)
3. 如果上面的这一步实现了,那么得到的html是可以在markdown编辑器呈现出基本和网页一样的效果,这里还要注意html的左右布局右侧的内容会被显示在左侧的后面,所以有这个限制。
4. 在markdown显示正确后,导出成pdf仍旧会遇到一段文本被显示在2页,可以设置一个有高度的div
至于markdown转pdf的库,可以去github找
展开
技术交流圈
分享
12
1
zephyrljy
平平无奇的切图仔 @无业游民
·
3年前
举报
大家写vue3 写代码会把所有变量提取到最上面吗?
技术交流圈
分享
3
1
悲伤的玉米排骨
前端打工仔 @养老公司
·
3年前
举报
xdm,昨晚玩金铲铲遇到了有史以来最狗的人了,12人口6斗士6复苏,三星大头三星努努,我的三星月男完全打不动。
收起
查看大图
向左旋转
向右旋转
上班摸鱼
分享
11
2
下一页
个人成就
文章被点赞
115
文章被阅读
33,863
掘力值
1,022
关注了
40
关注者
44
收藏集
11
关注标签
20
加入于
2018-05-11