解析PDF經常使用組件(PdfBox、iText、Tika等)都沒法將表格數據解析成有規則的格式。解析後格式基本是TEXT、XHTML等致使處理表格數據變的很是複雜,基本須要全枚舉+正則才能處理個70-80%。最近看到Python能夠解析表格因而嘗試了一下,不過要想讓數據可用,還存在不少問題待解決。
PDF文件截圖
java
Tika解析PDF文件
一、TEXT格式web
Tika tika = new Tika(); tika.setMaxStringLength(100 * 1024 * 1024); try (InputStream stream = new FileInputStream(new File("600060_2018_zB.pdf"))) { return tika.parseToString(stream); }
Text格式解析結果
二、XHTML格式數組
ContentHandler handler = new ToXMLContentHandler(); AutoDetectParser parser = new AutoDetectParser(); Metadata metadata = new Metadata(); try (InputStream stream = new FileInputStream(new File("600060_2018_zB.pdf"))) { parser.parse(stream, handler, metadata); return handler.toString(); }
XHTML格式解析結果
svg
Python解析表格
一、前十名股東表格原始數組spa
二、處理過的財務指標
3d
三、處理過單位後的快報數據
暫時還不通用存在一些問題,如換行、表頭、每列佔用單元格個數不統1、分頁等。code