格式、文件与 DRM
如何在 Android 上重排 PDF
Lectern 能把文本型 PDF 变成按屏幕大小排布的流动文本:打开书籍,点一下「文本重排」(或者点「收听」直接开始朗读),它就会根据 PDF 的文本层重建段落。搜索、词典查询、高亮和主题都和其他书一样可用。纯图像的扫描版 PDF 需要先做 OCR 才能重排。
简短回答:PDF 描述的是一个固定页面,所以「重排」的意思是把这一页的文本重建成会根据屏幕自动换行的段落,就像 EPUB 那样。在 Lectern 的 PDF 阅读器里,打开书籍的详情面板,点一下文本重排。这只对真正包含文本的 PDF 有效;扫描页面没有文本可用。
重排到底改变了什么
PDF 把字形存储在固定页面上的固定坐标处,这就是为什么在手机上放大后要来回平移才能读完一行。重排会丢弃那个页面版式,把文字重建成普通段落:把文本归并成行,把行拼成段落,把多栏页面拆分成从左到右的阅读顺序,把因换行被拆开的连字符单词重新接上,并把被分页打断的句子重新连接起来。
完成之后,结果的表现就和 Lectern 打开的其他任何书一样:你平常的阅读器排版设置(字体、字号、行距、页边距)都会生效,而且始终按屏幕大小排布,不再受原始页面限制。重排后的文本会在第一次生成时缓存下来,与这本书绑定,之后再打开就是瞬间完成,磁盘上原始的 PDF 文件则从不会被改动。
分步操作:在 Lectern 中重排 PDF
- 打开书库,点一下你想读的 PDF(是点一下,不是长按,正常点击会打开书籍的详情面板)。
- 找到两个按钮,就在主按钮以 PDF 打开下方:文本重排和收听。
- 点「文本重排」以流动段落的方式阅读,或者点收听打开同样重排过的文本并立即开始朗读。
- 长 PDF 需要等待一次性构建过程:Lectern 提取和重建文本时,会出现一条「正在准备重排」的进度条。短文件几乎瞬间完成;篇幅长、图片多的书可能要稍等一会儿,但只有这一次。
- 从阅读器自身的设置里调整字号、行距和页边距,和调整 EPUB 的方式完全一样。
- 随时可以切回去:重新打开书籍的详情面板,选择以 PDF 打开即可看到原始固定页面;你会回到同一页。
重排之后,哪些功能依然可用
重排后的文本走的是和 Lectern 里其他任何一本书相同的阅读界面,而不是一个精简过的 PDF 专用视图,所以平常的工具都会跟着一起可用:
| 以 PDF 打开 | 文本重排 | |
|---|---|---|
| 版式 | 原始页面,固定 | 流动段落 |
| 字号 | 缩放与平移 | 自动适配屏幕大小 |
| 全文搜索 | 支持 | 支持 |
| 词典查询 | 支持(长按一个词) | 支持 |
| 高亮 | 不支持 | 支持 |
| 朗读 | 不支持 | 支持,带逐句高亮 |
| 夜间 / 棕褐 | 自有的颜色模式 | 与其他书相同的阅读主题 |
分栏、脚注和页眉页脚的处理方式
这部分正是重排比纯文本导出更值得用的原因,也是它诚实的局限所在:
- 多栏页面(论文、通讯稿)会被识别出来,拆分成从左到右的阅读顺序,避免各栏内容交错成乱码。没有明显栏间距的页面会当作单栏处理,和以前一样。
- 页面底部字号明显更小的脚注会被提取出来,放在该页正文之后,而不是插到段落中间打断阅读。脚注内容照样保留,只是挪到了这一页文字流的末尾。
- 在大多数页面上重复出现的页眉、页脚和裸露页码会被自动识别并去掉,所以你不会在每一段之间听到或读到「第三章 · 42」这样的内容。这种识别需要至少 10 页的文档才能把重复出现的页眉和巧合区分开,所以一份简短的讲义或单章导出的文件,页眉文字仍可能留在文字流里。
- 表格不会被重建成行列结构。重排重建的是阅读顺序,不是电子表格,所以表格的单元格会按它们在页面上大致的顺序变成连续文本。对主要是带标签列表的表格来说没问题;密集的数据表格在原始固定版式里读起来更好。
- 被分页打断的句子会跨两页重新连接起来,所以你不会在原来的分页处听到句子被腰斩。
重排帮不上忙的情况
- 扫描或拍摄的页面。如果一份 PDF 是页面的图像而不是真正的文本,重排就没有可用的素材,而且 Lectern 不会运行 OCR(光学字符识别)来生成文本。可以先在 PDF 里试着选中一个词:如果什么都选不中,说明这是扫描件。Lectern 会直接告诉你:「此 PDF 没有可重排的文本层(看起来是扫描的图像)。请改用逐页或滚动模式。」先用一个独立的 OCR 工具处理这个文件(OCRmyPDF 这类免费桌面工具就很好用),再在 Lectern 里重新打开,重排就能正常工作。
- 表单、乐谱、漫画和信息图。凡是页面上元素的视觉位置本身就是内容、而不只是承载内容的容器时,一旦变成段落文字流就会失去意义。这类文件请按固定页面阅读。
- 密集的数据表格和标注很多的图表。同上:数字保得住,网格保不住。这其实和 EPUB 与 PDF 里讲的页面与文本的取舍是同一回事:重排能让 PDF 的表现更接近 EPUB,但没法追溯性地给它 EPUB 那种版式自由。
- 需要原始页码的时候。重排会围绕你的字号重新分页,而不是按印刷页面分页,所以如果你要为参考文献或课堂引用具体页码,请打开 PDF 的原始固定版式来读取真实页码。
一个快速的预先检查方法
在重排一份长文档之前,先以 PDF 方式打开它,试着在某一页上选中一个词。如果出现文本选区,说明文件有文本层,重排会正常工作;如果什么都选不中,说明这是图像,重排没有素材可用。在任何应用上尝试朗读 PDF之前,都值得先做一遍这个检查,不只是在 Lectern 里。
常见问题
切回原始页面版式会丢失阅读位置吗?
不会。同一本书在「以 PDF 打开」和「文本重排」之间切换时,Lectern 会记住你所在的页面,所以你可以查看原始版式,然后回到同一页。
重排在短文档(比如五页的讲义)上效果好吗?
文本本身会被重排,但自动去除页眉页脚的功能只在 10 页及以上的文档中生效,因为它需要足够多的页面才能把重复的页眉和巧合区分开。在短文件里,信头或页脚文字仍可能出现在文字流中。
可以给扫描版 PDF 加上文本层再重排吗?
可以。Lectern 本身不含 OCR 功能,但 OCRmyPDF 这类免费桌面工具可以给扫描版 PDF 加上文本层。做完之后,在 Lectern 里重新打开文件,「文本重排」的效果就和一开始就是数字文本的 PDF 完全一样。
重排会改变或替换我的原始 PDF 文件吗?
不会。重排后的文本是单独生成并缓存的,绑定在 Lectern 自己存储里的这本书上。磁盘上的原始 PDF 从不会被修改,「以 PDF 打开」显示的永远是未改动的文件。
继续阅读