搞开发免不了大量阅读各种PDF格式的技术文档,边读边做标注是常规需求。自从购买了iphone、mac之后,跨平台PDF阅读一直是个小的问题,对标注的同步需求相当强烈。试想在单位标注了一半的文档,回家打开就可以接着干,是不是很爽的一件事情。略作摸索后,按照一贯的风格,从原理到应用,并整理了如下解决办法,希望对有缘者有所帮助。
跨平台PDF阅读的关键技术
增量同步:文档的审阅和阅读,增量同步是必须具备的功能。所谓“增量同步”是指一个20M的PDF文件,只添加了部分批注,多了100K的内容,则理想情况下软件只会将这多出来的100K,而不是20M的内容都重新上传一次。
实际情况是,即使只修改了100K的内容,也会有约20%的内容会重新同步,因为多数增量同步是基于Rsync的技术的。例如Dropbox的增量同步,每4M生成一个Hash码,然后更新的时候把码表和隐藏目录里存储的原码表做一下比较,发现1-10、12-20段都没有改变,只有11段不一样了,于是就只上传了第11段的数据段。云存储或笔记的增量同步是如何实现的? - 知乎
WebDAV:WebDAV 就是一种互联网方法,应用此方法可以在服务器上划出一块存储空间,可以使用用户名和密码来控制访问,让用户可以直接存储、下载、编辑文件。只要App支持WebADV,就可以直接访问云盘,想操作本地文件一样对云端文件进行各种操作。这是这个链接是坚果云对WebDAV的详细讲解,感兴趣的自己阅读。为什么国内各大云存储服务都不支持 WebDAV? - 知乎
可以看出,想要实现跨平台的PDF阅读标注同步,云盘要同时支持增量同步和WebDAV,PDF软件则只要支持WebDAV就可以。
跨平台实现
百度网盘不支持增量同步,icloud不支持windows和android,大部分支持WebDav的PDF软件如PDF Expert(ios&Mac)需要收费。最终,云盘选用坚果云,PDF软件选用Foxit Reader,均可以免费使用。
各平台需做如下部署,只要能实现上述两种功能,以下软件可以随意替换,其中PDF阅读器的选择可参考下图:
mac os : 坚果云 、Foxit Reader
windows : 坚果云 、Foxit Reader
ios : Foxit Reader
android : ? Gaaiho PDF貌似支持WebDav,但是试用失败。
注册坚果云并获取WebDav地址
进入坚果云官网坚果云,选择个人用户,注册后登陆,免费用户有1G/3G的上传/下载权限,同时可在官网下载各平台的NutStore的App。
-
点击右上角用户名,在下拉菜单中选择“账户信息”,
-
选择”安全选项”,其中“第三方应用管理”就显示了相应账户对应的服务器地址、账户和密码,这就是Foxit Reader添加WebDAV时所需的信息。
Mac和Windows端部署
- 下载NutStore并安装,登陆后会要求指定本地的同步文件夹。注意,NutStore要保持在运行状态,才能实现自动同步。
- 在指定的同步文件夹使用喜欢的软件,可以是Foxit Reader,也可以是Adobe Reader或是苹果自带的预览,打开PDF编辑后保持即可。
ios端部署
-
在AppStore下载福昕阅读器后,打开如下操作,进入WebDav配置界面。
-
从坚果云“第三方应用管理”页面获取URL、登陆、密码三个信息,前面有描述。点击右上角“保存”后,回到云菜单,就可以看到自己定义的WebDAV的信息了,点开后入下图右侧所示,和PC端的内容保持了同步。
- 双击PDF打开即可正常进行编辑操作,所做修改软件会自动同步到云端。
后话
实现跨平台PDF阅读,的确给学习和办公带来了很大的方便,但有两点不足,留待后续改进:
- Android端支持WebDav的阅读器暂时没有找到。
- 坚果云的功能只是同步,如果能够找到一款自带增量同步功能的PDF阅读器,就可以不使用坚果云了。通常情况下,这种方式更为便捷稳定。
如果有朋友有更好的方法,麻烦留言推荐一下,谢谢!