[英]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; }
在循環代碼中,您從原始示例中刪除了非常重要的塊,
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 )中,這些對象又包含它們自己的簡單內容。
任何人都知道什么對象代表PDF表格中的邊框
不幸的是,PDF內容中沒有像border屬性那樣的東西。 取而代之的是,邊框是獨立的對象,通常是矢量圖形,是線條還是非常細的矩形。
因此,在掃描頁面內容時(遞歸地,如A所示 ),您將必須查找包含以下內容的Path
實例(名稱空間org.pdfclown.documents.contents.objects
)
( 此答案可能會有所幫助)
當您遇到這樣的界限時,您將不得不對其進行解釋 。 這些線可能是邊框,但也可以用作下划線,頁面裝飾,...
如果PDF剛好被加了標簽,那么就可以使事情變得容易一些,因為您無需多解釋。 相反,您可以閱讀標記信息,該信息可以告訴您單元格的開始和結束位置,因此您無需解釋圖形線。 不幸的是,加標簽的PDF還是少於。
或者如何檢測文本是否為表格的標題?
就像上面一樣,除非您碰巧檢查了帶標簽的PDF,否則沒有任何內容可以立即告訴您某些文本是表格標題。 您必須再次解釋。 該文本是否超出您確定要形成表格的行數? 它在頂部嗎? 還是在里面的任何地方? 是否以特定字體繪制? 或更大? 不同的顏色? 等等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.