V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Beeethoven
V2EX  ›  程序员

请教 PDF 格式的实现

  •  
  •   Beeethoven · 2020-01-17 14:19:27 +08:00 · 2709 次点击
    这是一个创建于 1776 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    6 条回复    2020-01-18 02:12:12 +08:00
    Vegetable
        1
    Vegetable  
       2020-01-17 14:25:06 +08:00
    你可以用网页来理解,有些部分是文字,所以可以复制,比如 word 生成的 pdf。有些地方看起来是文字,但是实际上是图片,不容易直接复制,比如扫描仪扫出来的。
    pdf 本身也是一种文档的形式,将多种类型的元素组织到一起,和网页的原理差不多。
    heguangyu5
        2
    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
        3
    815979670  
       2020-01-17 15:13:03 +08:00
    @Vegetable 我也发现了 有一部分书 确实是扫描图片无疑,但是人家可以复制 不知道为啥
    cigarzh
        4
    cigarzh  
       2020-01-17 15:54:39 +08:00
    双层 PDF 而已
    ljpCN
        5
    ljpCN  
       2020-01-17 19:44:11 +08:00
    @815979670 扫描件可以 OCR 后制作成双层 pdf ;也可以把一个文档制作成 pdf,里面的文字都是矢量图形,但并不是双层,也就是不包含文本识别的信息也就不能选中。
    slanternsw
        6
    slanternsw  
       2020-01-18 02:12:12 +08:00
    Acrobet 打开编辑时会自动 OCR,如果确实是工整的印刷体那么可以接近 100%正确
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3100 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:32 · PVG 21:32 · LAX 05:32 · JFK 08:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.