请教 PDF 格式的实现

2020-01-17 14:19:27 +08:00
 Beeethoven

最近在做有关 PDF 文档的识别与归类,接触了很多种类的 PDF

有看起来和 word 差不多的,有看起来是上了年头的书扫描而成的,有各种语言,英文日文中文等等

在这个过程中我发现 PDF 阅读器对于 PDF 文件可不可以选中复制的判定很奇怪,有的字工工整整就像 doc 文件,不能复制,有的扫描件看起来歪歪扭扭却可以基本无差错复制下来,请问这是怎么实现的?是生成 PDF 时就这么处理了还是 PDF 阅读软件的解析功能,有什么文档或者文章详细介绍这个格式吗

最后顺便求大佬推荐 java 的 pdf 识别框架,pdfBox iText xPdf spirePdf 都试过了,都有各种方面的缺点,希望知道更多选择

2596 次点击
所在节点    程序员
6 条回复
Vegetable
2020-01-17 14:25:06 +08:00
你可以用网页来理解,有些部分是文字,所以可以复制,比如 word 生成的 pdf。有些地方看起来是文字,但是实际上是图片,不容易直接复制,比如扫描仪扫出来的。
pdf 本身也是一种文档的形式,将多种类型的元素组织到一起,和网页的原理差不多。
heguangyu5
2020-01-17 14:35:45 +08:00
可以看下这本书, 详细了解下 pdf.

Pdf Explained https://www.amazon.com/PDF-Explained-Standard-Document-Exchange/dp/1449310028

java 的 pdf 相关软件不太了解,但 ubuntu 上的 pdf 阅读器什么的很多都是基于 Poppler 这个类库做的. https://poppler.freedesktop.org/releases.html
815979670
2020-01-17 15:13:03 +08:00
@Vegetable 我也发现了 有一部分书 确实是扫描图片无疑,但是人家可以复制 不知道为啥
cigarzh
2020-01-17 15:54:39 +08:00
双层 PDF 而已
ljpCN
2020-01-17 19:44:11 +08:00
@815979670 扫描件可以 OCR 后制作成双层 pdf ;也可以把一个文档制作成 pdf,里面的文字都是矢量图形,但并不是双层,也就是不包含文本识别的信息也就不能选中。
slanternsw
2020-01-18 02:12:12 +08:00
Acrobet 打开编辑时会自动 OCR,如果确实是工整的印刷体那么可以接近 100%正确

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/638731

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX