archive.org 上有海量的书籍可供借阅。
我一直在清理我的纸质书籍收藏,转而阅读电子书。虽然有很多书可以用 Kindle 和 PDF 格式替代,但还有相当一部分书从未有过电子书版本。
archive.org 提供一项服务,他们扫描了海量书籍,并以可续借的方式免费供人借阅。但这项服务存在四个主要局限性。
- 它使用的是 archive.org 的翻页界面,这不如在自己喜欢的软件中使用真正的 PDF 文件那样令人愉快。
- 您无法在这本书上做标记、添加书签等,也无法在将来保留这些笔记。
- 只有在连接互联网时才能使用。要是去坐游轮或露营?那就没办法了。
- 而且它可能也存在不了多久了。archive.org 已经输掉了第一轮,对手是一群出版商,他们不满的是,他们根本不想再版的书籍竟然可以从图书馆借阅。
代码救援
幸运的是,你可以将这些书下载为PDF格式。你只需要掌握一些JavaScript知识,并且能够仔细阅读并理解操作说明。
首先,请前往这个GitHub 页面,那里有完整的说明。
一些建议:
- 使用 Firefox 浏览器,它运行稳定。
- 取消勾选“始终询问您文件保存位置”
- 您将下载几百个甚至更多的文件,您肯定不想每个文件都按回车键。
- 看完书后,放大图片,至少放大两次。我通常放大四次。否则,你得到的JPG图片会很小,阅读起来很模糊。
- 请仔细阅读并按照说明操作。第一次可能不会成功,但当你再次阅读说明时,你会发现自己漏掉了一个小步骤。
收集完所有 JPG 图片后,你可以用多种方法将它们合并成一个 PDF 文件。这里有一个简单的 Python 脚本,可以通过img2pdf模块实现。只需将所有 JPG 图片保存到一个文件夹中,然后调用此脚本即可。
make_pdf.py <目录名称>
代码:
#!/usr/bin/python3 导入 img2pdf、os、re、sys def fail(message): print("%s\n" % (message)) sys.exit(1) 如果 (len(sys.argv) != 2): 失败(“用法:makepdf <目录>”) img_dir = sys.argv[1] img_dir = re.sub('/$', '', img_dir) 如果 ( os.path.exists ( img_dir ) == False ): 失败("错误:目录“%s”不存在" % ( img_dir ) ) print("%-30s: %s" % ("Directory", img_dir)) pdf_name = "%s.pdf" % ( img_dir ) print("%-30秒: %s" % ("要创建的PDF", pdf_name)) images = [] for fname in os.listdir(img_dir): 如果不是 fname.endswith(".jpg"): 继续 path = os.path.join(img_dir, fname) 如果 os.path.isdir(path): 继续 images.append(路径) images.sort() print("%-30秒: %d" % ("图像数量", len(images))) print("%-30s: %s" % ("第一张图片", images[0])) print("%-30s: %s" % ("最后一张图片", images[len(images)-1])) with open(pdf_name,"wb") as f: f.write(img2pdf.convert(images)) os.system ("du -sh \"%s\"" % ( pdf_name ))