這個使用 Python 編寫的 PDF 神器你值得擁有!

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

這個使用 Python 編寫的 PDF 神器你值得擁有! 科技 第1張

這個使用 Python 編寫的 PDF 神器你值得擁有! 科技 第2張

作者 | 若名

出品 | AI科技大本營

如果經常跟數據表格打交道,那你應該體驗過那種令人煩躁到抓狂的心情。但現在,學會下面將要介紹的一款工具的使用方法,相信我,它會讓你在工作中簡直不能更舒爽。

Excalibur,從古希臘語翻譯過來就是「神劍」,它現在也是一種用於從 PDF 中提取表格數據的 Web 界面,使用 Python 3 編寫,由 Camelot(Python 庫) 提供支持,可以讓任何人輕鬆地從 PDF 文件中提取表格數據。需要注意的是,Excalibur 僅適用於基於文本的 PDF 文件,掃描文件不在此列。

Camelot 和 Excalibur 的作者和維護者是來自新德里 Bharati Vidyapeeth 工程學院的 Vinayak Mehta,目前他正全職做這些項目。

這個使用 Python 編寫的 PDF 神器你值得擁有! 科技 第3張

Excalibur 的四大特性

可移植文件格式

PDF 文件定義了將字符放置在相對於頁面左下角的 x,y 坐標的指令。通過將某些字符放在比其他字符更近的地方來模擬單詞。空格是通過將單詞放在相對較遠的地方來模擬的。最後,通過放置在電子表格中顯示的字詞來模擬表格,格式沒有表格結構的內部表示。

自動檢測 PDF 中的表格數據

可移植文件格式不是為表格數據設計的。可悲的是,許多開放數據共享時都是 PDF 文件,但對其中的表格進行分析卻是一件非常痛苦的事。簡單的復制黏貼行不通,Excalibur 通過自動檢測 PDF 中的表格並讓你通過 Web 界面將它們保存為 CSV 和 Excel 文件,這使 PDF 表格提取變得非常簡單。

可動態調整表格提取規則

雖然有很多廣泛用於 PDF 表格提取的開源和閉源工具,但他們輸出的表格良莠不齊。Excalibur 由 Camelot 提供支持,為用戶提供附加設置以調整表格提取並獲得最佳效果。相較而言,它的性能要好於其他開源工具和庫。

數據完全可控且安全

你可以完全控制數據,因為所有文件存儲和處理都在你自己的本地或遠程計算機上進行。Excalibur 還可以配置 MySQL 和 Celery 系統,以並行和分布式方式執行表格提取任務。默認情況下,任務按順序執行。

這個使用 Python 編寫的 PDF 神器你值得擁有! 科技 第4張

快速上手指南

下載和安裝

https://github.com/camelot-dev/excalibur/releases

https://excalibur-py.readthedocs.io/en/master/user/install.html#install

設置開發環境

你可以使用 pip 輕鬆安裝開發依賴項:

$pipinstallexcalibur-py[dev]

測試(很快)

安裝後,你可以使用以下命令運行測試:

$pythonsetup.pytest

使用「神劍」

安裝後,可以使用以下命令初始化元數據的數據庫:

$excaliburinitdb

然後使用以下命令啟動 Web 服務器:

$excaliburwebserver

現在,你可以轉到 http:// localhost:5000 並開始從 PDF 文件中提取表格數據。

上傳 PDF

你可以使用 Web 界面上傳 PDF 文件,還可以與之前的上傳進行整合。

這個使用 Python 編寫的 PDF 神器你值得擁有! 科技 第5張

自動檢測表格

Excalibur 可以自動檢測 PDF 中的表格。

這個使用 Python 編寫的 PDF 神器你值得擁有! 科技 第6張

繪制表格區域或者放置分隔符

如果表格深埋在文本內部並且自動檢測失敗,則可以通過繪制表格區域和列分隔符進行操作。

這個使用 Python 編寫的 PDF 神器你值得擁有! 科技 第7張

加載已保存的規則設置

你也可以保存 PDF 文件中表格提取的規則設置,並將其應用於新的 PDF 文件以提取具有類似結構的表格。

這個使用 Python 編寫的 PDF 神器你值得擁有! 科技 第8張

查看和下載數據

最後,你可以查看提取的表格並將其下載為 CSV 或 Excel 文件。Excalibur 還支持 JSON 和 HTML 格式。

這個使用 Python 編寫的 PDF 神器你值得擁有! 科技 第9張

最後給出源代碼鏈接,你可以通過以下方式查看最新源代碼:

$gitclonehttps://www.github.com/camelot-dev/excalibur


熱 文推 薦

「傻瓜」才能寫出好代碼!

漫畫 | 從搬家到容器技術 Docker 應用場景解析

Hacker News 12 月招聘趨勢:React 已連續霸榜 19 個月

從傾家蕩產到身價百億,這個85後只用了8年

難逃寒冬裁員的「大追殺」,30 歲女碼農該何去何從?

☞OpenStack 2018 年終盤點

☞拼多多黃崢給陸奇「兼職」,欲挖掘這類AI人才

☞老工程師肺腑忠告:千萬別一輩子靠技術生存!

print_r('點個好看吧!');var_dump('點個好看吧!');NSLog(@"點個好看吧!");System.out.println("點個好看吧!");console.log("點個好看吧!");print("點個好看吧!");printf("點個好看吧!\n");cout<<"點個好看吧!"<<endl;Console.WriteLine("點個好看吧!");fmt.Println("點個好看吧!");Response.Write("點個好看吧!");alert("點個好看吧!")echo "點個好看吧!"

點擊「閱讀原文」,打開 CSDN App 閱讀更貼心!

這個使用 Python 編寫的 PDF 神器你值得擁有! 科技 第11張

喜歡就點擊「好看」吧!

About 尋夢園
尋夢園是台灣最大的聊天室及交友社群網站。 致力於發展能夠讓會員們彼此互動、盡情分享自我的平台。 擁有數百間不同的聊天室 ,讓您隨時隨地都能找到志同道合的好友!