简书PDF生成器 1.0.0:如何优雅地下载简书文章
缘起
笔者因着小时候一次丢失电子资料的经历,直到现在,重要的资料都很少肯只放一处——自己本机要有一份,网上也要有一份,这样不论是自己硬盘损坏还是人家服务器关停,我都不至于有多大损失。学习资料、影视文件、代码成果如此,写好的文章更是如此。
在使用简书之前,我习惯在本地word里写作,每写几个字都会下意识地按一下Ctrl+S(保存),写完之后发到网上。有时回头读一读,发现几个错别字、想到几个更好的用词,网上和本地两头都要改一遍。在渐渐习惯使用简书写作之后,情况就倒了过来,先在简书写,写好了再复制粘贴到word里。后来终于嫌麻烦,再加上发现这里有下载自己所有文章的功能,便舍弃了在本地的实时备份,改过字句、写过新文章后来简书下载所有文章就行。
在文章备份方面,简书其实已经做得十分到位,它像SVN一样自动保存着我们文章的每一个版本,比自己用word备份强得多。但当我们出于安全考虑,使用本地备份的功能(下载文章),下载下来的是一个压缩包,里头是与文集一一对应的文件夹,文件夹里HTML格式的文章,点开一看,是这样的:(以我最近的一篇《01改变世界:机械之美——机械时期的计算设备》为例)
我喜爱的黑体字体和夜间模式不见了 引用部分只保留了缩进,没有背景色;图片直接按原尺寸显示,下面的说明文字也失去了格式当然这些现象还是可以忍受的,毕竟是备份,不需要保持那么美观,内容都在就行。然而内容真的都在吗?事实证明我没有多虑,这些HTML文件的体积是如此之小:
通常只有几K、十几K很明显没有将图片数据包含进去,仍然只是保存了图片的url地址,如果你断开网络,清空浏览器缓存,图片将不再显示。也就是说这里的文章备份是不完整的,如果哪一天图床出了故障或者关停(当然我们都不希望这些情况发生),文章里的图片将无处可寻,文学类的还行,强烈依赖于插图的文章等于残废,有些图是作者自己截的、画的、PS的,可谓损失惨重。
我想会不会不是只有我一个在寻求额外的备份方案,在简书一搜,还真有人琢磨过——《简书文章备份设想》,文中提出了一种将文章转存至word的设想,但也仅仅是设想,而且word文档的兼容性实在不敢恭维。
当我兴奋地询问……好吧,光说不练都是没用的,看来有必要自己动手丰衣足食。我选择的是PDF,因为PDF是一种写死的格式(不像word那么矫情),内嵌字体,用任何软件打开都不会出现排版错乱,这样在实现备份的同时还可以保留原本优雅的阅读体验,一般提交、打印论文和简历也都会选择PDF。
成果
经过10天的艰苦奋斗,终于整出了一个凑合能用的版本,先来看看效果:(以自己的一篇散文《刹那寒》为例)
左边为网页原效果,右侧为PDF效果· 页面宽度为A4纸宽度,没有分页,即文章有多长,页面就有多长;
· 秉承简书的排版风格,行间距、段间距、字体颜色都经过悉心调整;
· 为保障作者权益,文章标题和作者名字都含有超链接,点击可以打开文章页面和作者主页;
· 作为简书的忠实拥护者,为保护版权,在右上角添加了简书logo,同样带有前往简书首页的超链接。
· 内嵌图片,以合适的尺寸显示;
· 扩展阅读、打赏、评论等元素没有保留,旨在备份文章本身。
下面来考察一下其他页面元素,以一篇比较复杂的文章《01改变世界:没有计算器的日子怎么过——手动时期的计算工具》为例:
文中的小标题、图片下方的说明文字都是追求与简书保持一致的(说明文字下方偷懒没有像简书那样划线,好像也并不难看) 超链接和引用块的色彩也都与简书一致 分割线当然,正文里的粗体、斜体、删除线也都支持,这里就不一一展示了,大家可以自己尝试,总之各项格式跟你在网页上看到的都是一样的。
有32位和64位两个版本,请根据自己的系统合理选择。
欢迎订阅《逸之的程序小库》专题,软件后续推出的版本更新将收录其中。
使用说明
这是一款只能在Windows下运行的软件,因为是MFC做的,界面非常朴(nan)实(kan):
甚至连icon都没有换你只需要将文章的页面地址粘贴进去,点击保存,在获取好网页内容之后会弹出选择保存路径的对话框:(再以《刹那寒》为例)
弹出选择保存路径的对话框,默认文件名是自动解析到的文章题目选好路径,改好名字,点击保存,如果一切顺利,程序会提示你生成成功:
大功告成\(^o^)/有此神器在手,妈妈再也不用担心我的文章丢失~
除了作者保存自己的文章,读者也可以下载自己喜欢的文章额外声明&程序的不足
· 目前只针对单篇文章,不能批量下载,这也是值得商榷的,因为批量下载有可能侵犯到作者的权益。
· 目前只支持白天模式+黑体,不支持夜间模式存在一定的技术原因,而不支持宋体是因为我本人觉得黑体更好看!
· 由于PDF本身不支持动图,因此你只能看到GIF的第一帧。
· 暂不支持一些特殊字符,比如☜☝☟☞。
· 不支持包含视频的文章下载,如果你非要下,程序有可能忽略视频,只保留其他内容,有时可能也会一并忽略视频以下的所有内容。
· 暂不支持使用Markdown编辑的文章,因为Markdown的元素更丰富,比如列表、表格、代码段(目前精力有限),同时某些元素与富文本的文章格式也不一致。如果你非要下,在没有使用富文本以外的元素的情况下,有可能生成成功,但更多时候是提示失败。
· 在网速不给力的情况下,多图的文章下载可能会很慢,界面会假死,这个时候程序其实还没崩溃,请耐心等待,然而它最终可能会提示你图片加载(或下载)失败,没关系,你可以重试,或者,过会儿再试。
· 程序遵循PDF/A-2b标准,原则上文章可以很长很长,可以有381千米,我的个天,但我没允许这么长,大约限制在百来米的样子,也足够长了,超出限制程序会提示失败。
· 简书文章的格式并不完全统一(尤其是移动端写出来的),还有一些我尚未遇到的情况和尚未能解决的问题,也就是说程序有着大量潜在的bug,而且简书也会时不时调整格式,如果生成的页面排版混乱或出现乱码,或者程序在运行时崩溃,请反馈给我,我会尽可能修正。
2015年11月16日 西安