簡體   English   中英

使用PDF小丑檢測PDF表中的頁眉和邊框

[英]Detecting Headers and Borders in PDF Tables using PDF Clown

我正在使用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 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 mlineTo l筆划 S操作或
  • 矩形 refill f操作。

此答案可能會有所幫助)

當您遇到這樣的界限時,您將不得不對其進行解釋 這些線可能是邊框,但也可以用作下划線,頁面裝飾,...

如果PDF剛好被加了標簽,那么就可以使事情變得容易一些,因為您無需多解釋。 相反,您可以閱讀標記信息,該信息可以告訴您單元格的開始和結束位置,因此您無需解釋圖形線。 不幸的是,加標簽的PDF還是少於。

或者如何檢測文本是否為表格的標題?

就像上面一樣,除非您碰巧檢查了帶標簽的PDF,否則沒有任何內容可以立即告訴您某些文本是表格標題。 您必須再次解釋。 該文本是否超出您確定要形成表格的行數? 它在頂部嗎? 還是在里面的任何地方? 是否以特定字體繪制? 或更大? 不同的顏色? 等等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM