iT邦幫忙

0

如何抓取PDF的指定資料?

pdf
  • 分享至 

  • xImage

請問 C#或是Java、Python等語言能解析PDF如下嗎?
我想要拿到Vendor跟Ship To跟Item No
目前遇到困難是不能像Excel一樣可以用A2,B3來抓取資料
image

看更多先前的討論...收起先前的討論...
我請使用者使用 i live pdf (https://www.ilovepdf.com/zh-tw) 轉為 excel 後再進行後續處理.
網路上有提供pdf 轉 txt 的第3方元件, 也可試試
不確定是否有提供pdf轉excel的第3方元件
我們需要大量的pdf匯入erp, 且pdf非常複雜, 試過很多工具, 目前以i love pdf最佳, 使用者先使用pdf轉excel後, 再匯入erp, 仍可為他們節省大量的核對時間, 供參考
淺水員 iT邦大師 6 級 ‧ 2022-03-07 23:22:03 檢舉
下面這個 pdf 電腦看到的 unicode 跟印刷出來的字是不同的
也許會造成資料的輸入錯誤?

https://mega.nz/file/FVojmAoJ#aI5B9t2X80ksG-7OjYD7ybuncqNvJcmf486Pnu53IWI
列印(或顯示)的是:「月落烏啼霜滿天,江楓漁火對愁眠」
但複製或是丟到樓上提到的軟體會變成:「但使龍城飛將在,不教胡馬度陰山」
淺水員 iT邦大師 6 級 ‧ 2022-03-07 23:31:18 檢舉
雖然說正常來說不會收到這種 pdf
但複製文字變成亂碼的 pdf 倒是有時候會遇到
1.這個連結的檔案需要解密金鑰, 無法下載測試
2.除了i love pdf 之外, 有其他的pdf轉excel工具, 例如Able2Extract 或 Wondershare PDF Converter 等, 不同的PDF我們會找到最合適的轉換工具, 轉換後再匯入ERP
樓主公司的PDF應都是英文, 我們公司的也是, 英文不會有A變B的情況
淺水員 iT邦大師 6 級 ‧ 2022-03-08 10:48:56 檢舉
參考這個檔案
不管是英文或是數字都可以改的
https://drive.google.com/file/d/1Np8CyqAvGCFJBEoF8DkRdq3HmvE5Xplj/view
(雖然正常來說不會有人故意做這種 pdf 來騙人,比較多的是沒有給 unicode 資訊造成亂碼)
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

2
淺水員
iT邦大師 6 級 ‧ 2022-03-07 12:46:11
最佳解答

PDF 內部並不存在表格這種東西
我們看到的表格他實際上是用線條畫出來的
所以真的去解析內容只有類似「從 (x1,y1) 畫線到 (x2,y2)」這種東西
文字的部分則類似「移動座標到(x,y)後,渲染 Font 中的第幾個字」
甚至有些文字完全被轉換為路徑,以向量圖的方式畫上去的

基於這些原因
是否有相關套件我不知道,但應該不會有 100% 能判斷的
除非你能確定產生 pdf 的軟體都會以相同的結構產生 pdf
這樣的話會比較容易分析得出來

另一個方式就是先把 pdf 轉成圖片
再透過 OCR 去取得文字了
這方法的正確性就只看 OCR 的準確度而已

1
ntustzeus
iT邦新手 3 級 ‧ 2022-03-08 14:24:43

我以前做過把pdf上傳GoogleDrive,然後下載成text,可以得到文字
上傳圖片其實也可以,Google會自己轉換,精度還不錯

可以在nuget找下面的套件來組合功能:(我試的時候只有v2,現在是v3)

Google.Apis.Auth.OAuth2;
Google.Apis.Download;
Google.Apis.Drive.v2;
Google.Apis.Drive.v2.Data;
Google.Apis.Services;
Google.Apis.Upload;
Google.Apis.Util.Store;

原理上大概是這個:參考

我要發表回答

立即登入回答