保存网页内容为PDF,支持文本复制,链接跳转

摸索过程

平时浏览网页时看到了高质量的文章想将其收藏起来,方便随时查看。只保存网址可能会有被删除的风险,如果能将网页内容保存到本地或自己的云笔记中就好了。
一开始想的是使用各个云笔记的网页剪报功能,只保存核心内容,剔除掉广告推荐什么的无关内容。经过一圈用下来,发现只有印象笔记能比较好的满足需求。其他的云笔记或多或少都有一些问题,例如:只能以图片形式保存不能复制文本、保存后格式错乱、部分网页无法保存等。由于印象笔记不支持Markdown,也不支持内容导出,我个人不是很喜欢用,于是就放弃了这个方案。
保存网页内容为PDF,支持文本复制,链接跳转_第1张图片
印象笔记可以选择要保存的部分。

后来又试用了Pocket,Pocket的转码功能十分强大,经过转码后文章十分干净清爽,也保持了之前的格式不乱。但是,Pocket的整理功能有所不足,只能给文章加标签,不能按文件夹分类管理,而且也不能导出,故放弃。
接着又想到了使用浏览器的网页保存功能,将网页保存为单个mhtml文件。这种方式可以最大程度保证所见即所得,但是也会保存网页中无关的部分。而且这样会有本地文件,在没有网的情况下也能查看,也可以自行存到网盘进行备份。
保存网页内容为PDF,支持文本复制,链接跳转_第2张图片
注意: 保存类型选择mhtml是最好的。
不过这种方式保存也存在一个问题,不能在线预览,更换设备时必须要先将文件下载下来,才能查看文章内容。于是我想到,保存为pdf文件才是最佳的解决方案,将pdf上传至云笔记中,可以在线预览,本地文件也可以离线查看。
将网页转为pdf最简单的方式是使用浏览器的打印功能,打印的时候选择保存为pdf。不过这种方式存在很多问题。文件是以图片形式保存的,文字不能复制,链接不能跳转,图片比较模糊,也不能选择要打印的部分。
保存网页内容为PDF,支持文本复制,链接跳转_第3张图片
经过多次尝试与摸索,最终找到了一个比较完善的方案。

解决方案

第一步 将网页保存为htm

使用浏览器扩展SingleFile,可以在各个浏览器的扩展商店下载。

保存网页内容为PDF,支持文本复制,链接跳转_第4张图片
SingleFile可以保存网页中指定的部分或者整个网页为htm格式,使用标准的html标签,保留原有格式,图片以base64形式保存。

第二步 将html转换为pdf

将html转换为pdf的方式我也尝试了很多种,最终选择的是wkhtmltopdf,该软件是纯命令行软件,没有GUI,但综合转换效果是最好的。下载安装完成后使用命令行转换:
保存网页内容为PDF,支持文本复制,链接跳转_第5张图片
wkhtmltopdf虽然支持直接将网页URL转换为pdf,但是对某些网页支持不太好,有时候会出现排版混乱和内容不全的问题。

解决微信公众号文章图片无法显示

在转换微信公众号文章时发现图片无法显示,经过调查发现微信公众号文章在chrome等浏览器中默认使用的图片格式是webp,然而wkhtmltopdf目前还不支持webp。解决方式是将浏览器的UA改为IE9,这时候微信公众号文章的图片就变成了jpeg格式,这样就能转换正常了。

你可能感兴趣的:(生命在于折腾,html,pdf,wkhtmltopdf,云笔记,网页剪藏)