【问题标题】:Detecting Headers and Borders in PDF Tables using PDF Clown使用 PDF Clown 检测 PDF 表格中的标题和边框
【发布时间】:2015-07-20 14:39:11
【问题描述】:

我正在使用 PDF Clown 的 TextInfoExtractionSample 将 PDF 表格提取到 Excel 中,除了合并的单元格之外,我能够做到这一点。在下面的代码中,对于对象“内容”,我将扫描的内容视为文本、XObject、ContainerObject,但没有边框。任何人都知道什么对象代表 PDF 表格中的边框或如何检测文本是否是表格的标题?

   private void Extract(ContentScanner level, PrimitiveComposer composer)
   {
      if(level == null)
        return;
      while(level.MoveNext())
      {
        ContentObject content = level.Current;
      }
    }

【问题讨论】:

    标签: pdf pdfclown


    【解决方案1】:

    我正在使用 PDF Clown 的TextInfoExtractionSample...

    在下面的代码中,对于对象“内容”,我将扫描的内容视为文本、XObject、ContainerObject,但没有边框。

    while(level.MoveNext())
    {
        ContentObject content = level.Current;
    }
    

    A) 访问所有内容

    在您的循环代码中,您从原始示例中删除了非常重要的块,

        if(content is XObject)
        {
            // Scan the external level!
            Extract(((XObject)content).GetScanner(level), composer);
        }
    

    和

        if(content is ContainerObject)
        {
            // Scan the inner level!
            Extract(level.ChildLevel, composer);
        }
    

    这些块将示例递归变成复杂的对象(你提到的XObject、ContainerObject),这些对象又包含它们自己的简单内容。

    B) 检查所有内容

    谁知道什么对象代表PDF表格中的边框

    不幸的是,PDF 内容中没有像 border 属性 这样的东西。相反,边框是独立的对象,通常是矢量图形,可以是线条,也可以是非常细的矩形。

    因此,在扫描页面内容时(递归,如 A 所示),您将不得不寻找包含

    的 Path 实例(命名空间 org.pdfclown.documents.contents.objects)
    • moveTo m、lineTo l 和 stroke S 操作或
    • rectangle re 和 fill f 操作。

    (This answer 可能会有所帮助)

    当你遇到这样的台词时,你将不得不解释它们。这些线条可能是边框,但它们也可以用作下划线、页面装饰......

    如果 PDF 恰好被标记,事情可能会更容易一些,因为您需要解释的更少。相反,您可以阅读标记信息,这些信息可能会告诉您单元格的开始和结束位置,因此您无需解释图形线。不幸的是,被标记的 PDF 比没有标记的要少。

    或者如何检测一个文本是否是表格的表头?

    就像上面一样,除非您碰巧检查了带标签的 PDF,否则不会立即告诉您某些文本是表格标题。你必须再次解释。该文本是否在您决定形成表格的行之外?是在里面吗?还是就在里面的任何地方?它是用特定字体绘制的吗?还是更大?颜色不一样?等等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-19
      • 2016-12-11
      • 1970-01-01
      • 1970-01-01
      • 2017-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多