① 用python批量提取pdf的表格數據,保存為excel
pdfplumber 是一個開源 python 工具庫-,可以方便地獲取 pdf 的各種信息,包括文本、表格、圖表、尺寸等。完成我們本文的需求,主要使用 pdfplumber 提取 pdf 表格數據。
python 中還有很多庫可以處理 pdf,比如 PyPDF2、pdfminer 等,本文選擇pdfplumber 的原因在於能輕松訪問有關 PDF 的所有詳細信息,包括作者、來源、日期等,並且用於提取文本和表格的方法靈活可定製。大家可以根據手頭數據需求,再去解鎖 pdfplumber 的更多用法。
② 如何在pdf文件中查找數據
要看你的PDF文件是掃描的,還是通過普通的文檔(如Word)轉換的,掃描的是圖片,基本上不太可能實現查找
如果是正常轉換的,用一般的PDF閱讀器(如Adobe Reader)打開,通過菜單「編輯」-「查找」,或者Ctrl+F,或者工具欄的查找工具,既可以查找你需要的數據。
③ 如何用VBA實現打開PDF並查詢數據,獲取頁碼,或是提取該頁面為新文件
打開pdf文檔,查找到指定字元串,然後插入書簽
以下代碼先設置一個待查找字元串,用findtext方法查找,然後用createchild方法插入書簽。代碼的運行環境為Win8.1,Word2010 VBA,Acrobat Pro DC,在本機測試成功。
使用到的主要方法為AVDoc.FindText和BookMark.createChild。
AVDoc.FindText有4個參數:
szText,要查找的字元串
bCaseSensitive,是否區分大小寫,正數為區分,0為不區分
bWholeWordsOnly,是否匹配整個單詞,正數為匹配,0為不匹配
bReset,查找開始的位置,正數則從第一頁開始,0則從當前頁開始
BookMark.createChild有3個參數
cName,用戶在導航面板中看到的書簽的名稱。
cExpr,單擊書簽時要執行的表達式,為JavaScript
nIndex,(可選)在書簽的子數組中,創建新子書簽的基於0的索引。默認值為0。
Sub Pdf添加書簽()
'為某書添加書簽
Dim App As New Acrobat.AcroApp
Dim PDoc As New Acrobat.AcroPDDoc, AVDoc As New Acrobat.AcroAVDoc
Dim Jso As Object
Dim BMark As Object '不能聲明為Acrobat.AcroPDBookmark,否則createchild方法不可用。
Dim PFile As String, WordTF As String, PageNum As Long
PFile = "F:指定文件.pdf" '要插入書簽的pdf文件
WordTF = "要查找的"
If PDoc.Open(PFile) Then
Set Jso = PDoc.GetJSObject
Set AVDoc = PDoc.OpenAVDoc("") '獲得一個可見文檔
Jso.bookmarkroot.Remove '移除原有的所有書簽
End If
If AVDoc.FindText(WordTF, 0, 0, 1) Then '從第一頁開始,如果找到了字元串WordTF一次
PageNum = AVDoc.GetAVPageView.GetPageNum '獲得當前頁碼
Set BMark = Jso.bookmarkroot '設置書簽根對象
BMark.createChild WordTF, "this.pageNum=" & PageNum, 0 '創建一個書簽
PDoc.Save 1, PFile
End If
PDoc.Close
App.CloseAllDocs
App.Hide
App.Exit
Set AVDoc = Nothing
Set PDoc = Nothing
Set App = Nothing
Set BMark = Nothing
Set Jso = Nothing
End Sub
④ 怎麼正確的從PDF中讀取數據
引用 1 樓 bao22314483 的回復:將PDF轉換為Excel只能用Adobe Acrobat 9 Pro手動批量轉吧,代碼實現不了 哦 我用的工具轉的,效果還算理想吧,無亂碼現象,可惜得到的Excel格式不正確。 該空行的不空,不該空行的卻有空行現象,可能是導出的格式控制不好吧
⑤ 如何讀取pdf圖中點的准確數據
採用Acrobat中的「工具」——「測量工具」——「距離工具」,再設定比例與圖相同,就可以讀取了。
⑥ 怎麼樣獲取pdf的數據
建議你是用acrobat 或者abbyy 這個 兩款軟體進行轉換編輯
Adobe公司推出的PDF格式是一種全新的電子文檔格式。藉助 Acrobat ,您幾乎可以用攜帶型文檔格
adobe-acrobat-x
式 (Portable Document Format,簡稱 PDF) 出版所有的文檔。 PDF 格式的文檔能如實保留原來的面貌和內容,以及字體和圖像。這類文檔可通過電子郵件發送,也可將它們存儲在WWW 、企業內部網、文件系統或CD-ROM上,來供其他用戶在 Microsoft Windows , Mac OS和 LINUX 等平台上進行查看。由於該格式使用Adobe公司開發的PostScript頁面描述語言,使得頁面中的文字和圖形的質量得到質的飛躍。無論您是使用PDF文檔進行網上閱讀,還是列印、印刷出版,Adobe Acrobat都能給你最好效果。
ABBYY 是一家俄羅斯軟體公司,在文檔識別,數據捕獲和語言技術的開發中居世界領先地位。其獲獎產品 FineReader OCR 軟體可以把靜態紙文件和 PDF 文件轉換成可管理的電子數據,可以大大節省您的時間和精力。
⑦ Python利器:如何處理PDF表格數據
大家好,我是Peter~
在很多情況下,我們都需要處理PDF格式的文件。尤其當我們遇到PDF表格數據需要進行提取,真的是一個令人頭疼的問題。
因為PDF文件不能像Word那樣直接復制,即使復制了再黏貼也可能會出現格式排版錯亂甚至亂碼問題。如何從一個PDF文件提取出表格數據?本文提供兩個解決方案:
首先提供的一種方法是從文字 PDF 中提取表格信息的工具:Camelot,它能夠直接將大部分表格轉換為 Pandas 的 Dataframe。
更多的詳細信息,請參考項目地址: https://github.com/camelot-dev/camelot
camelot的安裝有多種方式。如果有報錯,網上一般有解決方式:
1、通過conda安裝
2、使用pip進行安裝
3、通過GitHub進行安裝
首先將項目復制到本地:
然後進入文件中進行安裝:
下面通過一個案例來講解如何使用camelot。假設我們現在有一個只有一頁的PDF文件test.pdf:
1、先讀取文件
導出成csv格式的數據(方式1)
查看tables的相關信息:
導出方式2:
將數據轉換成DataFrame:
tabula的功能比camelot更加強大,可以同時對多個表格數據進行提取。項目的具體地址請參考: https://github.com/chezou/tabula-py
tabula的安裝是非常簡單的:
安裝之後檢驗這個庫是否安裝成功:
通過tabula這個庫來讀取PDF文件:
然後我們發現列表中唯一的一個元素就是dataframe:
將讀取到的數據輸出成CSV格式的文件:
上面讀取的PDF文件是比較簡單的,只有一頁,而且剛好是一個很標準的表格形式的數據,下面看一個比較復雜的例子:
下面是第一頁,第一列可以看成是索引:
在第二頁中有兩份表格,而且中間有很多的空白行:
第三頁的數據比較標准:
這3頁是在同一個PDF文件中,這3頁是在同一個PDF文件中,這3頁是在同一個PDF文件中
上面的紅色提示中我們看到:當沒有指定pages參數的時候,只會默認讀取第一頁的數據,所以列表的長度為1。
轉成dataframe後將原來的索引變成新的一列 (部分數據)
通過pages來讀取全部數據:
通過指定pages="all":
同時獲取兩個表格的數據:
通過area參數來指定:
刪除在讀取的表格中我們不需要的欄位信息
可以將得到的數據輸出成不同格式的文件,以json格式為例:
我們可以看到
⑧ 我想問下 JAVA中 如何讀取PDF文件裡面的內容 誰給個詳細的 例子 謝謝
用Java簡單的讀取pdf文件中的數據:
第一步:下載PDFBox-0.7.2.jar。提供一個下載地址:http://pdfhome.hope.com.cn/Resource.aspx?CID=63844604-5253-4ae1-b023-258c9e324061&RID=20cd8f94-1cee-40b6-a3df-0ef024f8e0d2解壓後,把lib文件下的PDFBox-0.7.2.jar,PDFBox-0.7.2-log4j.jar放到你classpath路徑下。(我把源碼以及jar包都放到下面的附件里,方面你的使用。)
第二步:寫個簡單的讀取pdf文件的程序。(PdfReader.java)
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.MalformedURLException;
import java.net.URL;
import org.pdfbox.pdmodel.PDDocument;
import org.pdfbox.util.PDFTextStripper;
public class PdfReader {
public void readFdf(String file) throws Exception {
// 是否排序
boolean sort = false;
// pdf文件名
String pdfFile = file;
// 輸入文本文件名稱
String textFile = null;
// 編碼方式
String encoding = "UTF-8";
// 開始提取頁數
int startPage = 1;
// 結束提取頁數
int endPage = Integer.MAX_VALUE;
// 文件輸入流,生成文本文件
Writer output = null;
// 內存中存儲的PDF Document
PDDocument document = null;
try {
try {
// 首先當作一個URL來裝載文件,如果得到異常再從本地文件系統//去裝載文件
URL url = new URL(pdfFile);
//注意參數已不是以前版本中的URL.而是File。
document = PDDocument.load(pdfFile);
// 獲取PDF的文件名
String fileName = url.getFile();
// 以原來PDF的名稱來命名新產生的txt文件
if (fileName.length() > 4) {
File outputFile = new File(fileName.substring(0, fileName
.length() - 4)
+ ".txt");
textFile = outputFile.getName();
}
} catch (MalformedURLException e) {
// 如果作為URL裝載得到異常則從文件系統裝載
//注意參數已不是以前版本中的URL.而是File。
document = PDDocument.load(pdfFile);
if (pdfFile.length() > 4) {
textFile = pdfFile.substring(0, pdfFile.length() - 4)
+ ".txt";
}
}
// 文件輸入流,寫入文件倒textFile
output = new OutputStreamWriter(new FileOutputStream(textFile),
encoding);
// PDFTextStripper來提取文本
PDFTextStripper stripper = null;
stripper = new PDFTextStripper();
// 設置是否排序
stripper.setSortByPosition(sort);
// 設置起始頁
stripper.setStartPage(startPage);
// 設置結束頁
stripper.setEndPage(endPage);
// 調用PDFTextStripper的writeText提取並輸出文本
stripper.writeText(document, output);
} finally {
if (output != null) {
// 關閉輸出流
output.close();
}
if (document != null) {
// 關閉PDF Document
document.close();
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
PdfReader pdfReader = new PdfReader();
try {
// 取得E盤下的SpringGuide.pdf的內容
pdfReader.readFdf("E:\\SpringGuide.pdf");
} catch (Exception e) {
e.printStackTrace();
}
}
}
這樣就簡單的完成了從pdf中讀取數據了。在你的pdf文件所在的目錄下生成一個同名的txt文件。
⑨ 如何打開PDF文件 5種方法來打開PDF文件
目錄方法1:Windows計算機1、下載Adobe Reader。2、拒絕安裝邁克菲(McAfee)軟體。3、安裝Adobe Reader後,雙擊PDF文件。4、如果需要的話,輸入密碼。5、當Windows系統詢問用戶使用哪個程序來打開文件時。6、需要密碼的PDF文件。7、無法打開不合規范的PDF文件。方法2:Mac電腦1、雙擊PDF文件。2、更換打開PDF文件的閱讀程序。3、如果需要的話輸入密碼。4、無法用Safari打開PDF文件。5、「Adobe無法打開PDF名文件因為...」.6、無法使用火狐瀏覽器下載PDF文件。方法3:Android設備1、下載支持PDF文件的應用程序。2、找到你想要打開的PDF文件。3、打開下載好的PDF文件時,出現「無法打開」的提示。4、PDF試圖啟用錯誤的應用。方法4:iOS1、點擊你想打開的PDF文件。2、點擊打開的PDF文件,打開菜單。3、點擊「打開」,或分享按鈕。4、選擇你想使用的應用。方法5:Kindle1、將PDF文件傳輸到你的Kindle設備上。2、在你的Kindle設備上打開文件。PDF(攜帶型文件格式),是由Adobe公司開發的一種文件格式。由於PDF格式會忠實地再現原稿的每一個字元、顏色以及圖象,所以常用於創建和分享電子圖書和網路資料等文檔。鑒於PDF是一種不同於word的文檔格式,所以讀者需要使用特定的軟體才能讀取PDF文件。也就是說只要擁有正確的軟體,你就可以使用任何一台設備來打開並閱覽PDF文檔。
方法1:Windows計算機
1、下載Adobe Reader。它是一款可以打開並讀取PDF文檔的優秀閱讀器軟體。你可以從get.adobe.com/reader/上免費下載它。但是,你不能使用Adobe Reader來編輯、創建PDF文件。點擊此處了解如何編輯PDF文件。
如果你不想安裝Adobe Reader,你還可以考慮使用其它免費的PDF閱讀器軟體。
如果你不想使用Adobe Reader,你可以考慮使用Windows 8系統自帶的PDF閱讀器。
2、拒絕安裝邁克菲(McAfee)軟體。當你在安裝Adobe Reader時,會彈出一個對話框,它會進行自動檢測並在計算機上安裝邁克菲軟體。大部分用戶都不希望協同安裝邁克菲,所以確保取消安裝邁克菲對話框的選擇。
3、安裝Adobe Reader後,雙擊PDF文件。一般來說,閱讀器會自動打開PDF文件以供用戶閱讀。
4、如果需要的話,輸入密碼。有些用戶在創建PDF文檔時,為文件設置了密碼保護。所以如果你想要嘗試讀取此類文檔,你需要輸入正確的密碼。
檢修疑難故障
1、當Windows系統詢問用戶使用哪個程序來打開文件時。如果你已安裝Adobe Reader軟體,但程序無法自動打開PDF文件的話,你需要手動選擇文件的打開方式。右鍵點擊PDF文件,選擇「打開方式」。
選擇程序列表中的「Adobe Reader」。
如果Adobe Reader不在列表中,那麼你需要瀏覽並查看計算機中的Adobe Reader程序。一般來說,它被安裝在C:Program Files (x86)AdobeReader路徑下。
2、需要密碼的PDF文件。如果需要密碼才能打開PDF文件,而你恰好不知道密碼的話,你只能向文件創建者索取密碼或通過密碼破解程序來破解文件密碼,才能打開它。如果文件密碼很復雜,那麼密碼破解程序可能需要花費好幾小時或幾天才能破解獲得文件密碼。熟知的PDF密碼破解程序是由Elcomsoft開發的Advanced PDF Password Recovery 。如果你需要用到所有的密碼破解工具,那麼你需要花費99美元下載專業版Advanced PDF Password Recovery程序。
3、無法打開不合規范的PDF文件。Adobe閱讀器會拒絕打開不合規范標準的PDF文件。這些文件多是由非官方軟體創建的PDF。如果使用新版的閱讀器軟體來嘗試打開老版的PDF文件,也可能會遭遇此類問題。嘗試安裝第三方PDF閱讀器。還有許多不同種類的PDF閱讀器,如非常受歡迎的Foxit Reader。
將PDF文件上傳到谷歌雲端硬碟。上傳過程中,你可能會丟失部分文件格式,但是也更有可能提高文件的可讀取性。
方法2:Mac電腦
1、雙擊PDF文件。OS X帶有的Preview軟體,可以打開包括PDF文件在內的多種類型的文檔文件。Preview程序允許你讀取PDF文件,但不能編輯PDF文件。點擊此處了解如何編輯PDF文件。
2、更換打開PDF文件的閱讀程序。如果你有另一種PDF讀取程序,並且不想再使用 Preview程序了,那麼你可以將所有PDF文件設置為使用新程序來打開文件。在文件夾中選擇PDF文件,但不要打開它。
點擊「文件」菜單,選擇「了解更多」。
展開「打開方式」部分。
在下拉菜單中選擇你想要使用的應用程序。
點擊更改所有...按鈕。
3、如果需要的話輸入密碼。PDF文件可以設置密碼進行保護,以防未經授權的讀者讀取文件。如果你沒有密碼,你只能通過密碼破解程序來破解文件密碼,才能打開它。對於Mac電腦來說,如果你需要破解密碼,你可以考慮使用iStonsoft PDF Password Remover軟體。如果文件密碼很復雜,那麼密碼破解程序可能需要花費好幾小時或幾天才能破解獲得文件密碼。
檢修疑難故障
1、無法用Safari打開PDF文件。這種情況的發生是由於更新後的Safari瀏覽器與安裝的Adobe插件不兼容或插件發生錯誤。你可以通過手動刪除插件並重啟Safari來修復該問題。打開 /Library/Internet Plugins/ ,刪除AdobePDF相關插件。
打開 /User/Username/Library/Internet Plugins/ ,刪除AdobePDF相關插件。
重啟Safari瀏覽器,再次嘗試打開PDF文件。
2、「Adobe無法打開PDF名文件因為...」. 這種問題常常出現在使用Safari瀏覽器將PDF文件另存為或「導出PDF」文件時。嘗試在Safari中再次打開PDF文件。
點擊位於窗口頂部的磁碟(保存)按鈕,或將滑鼠懸停在頁面上,不久後頁面底部中央的位置會出現一個保存按鈕,點擊該按鈕即可。
將PDF文件保存在計算機上。
打開新保存的文件。
3、無法使用火狐瀏覽器下載PDF文件。如果你在火狐瀏覽器中下載PDF文件時沒有任何響應,那麼可能是Adobe Reader相關插件出現故障。點擊火狐菜單,選擇「工具」。
選擇「附加組件」,然後選擇「插件」。
查找「Adobe Acrobat NPAPi Plugin」,然後禁用它。
方法3:Android設備
1、下載支持PDF文件的應用程序。盡管安卓設備不帶有內置的PDF文件閱讀程序,但網上有大量方便好用的免費閱讀器可供你選擇下載。在這里向您推薦幾款應用程序:Google Drive
Quickoffice
Adobe Reader
Foxit MobilePDF
2、找到你想要打開的PDF文件。對於剛下載完的PDF文件,你可以點擊通知欄里剛完成下載的文件來打開它。如果你想要打開更早之前下載的PDF文件,那麼點擊下載文件夾中對應的文件即可。打開設備中「我的文件」或「文件管理器」。如果設備上沒有文件管理器,那麼可以從谷歌應用商店中免費下載一個。
打開下載文件夾。這是存儲下載文件的默認路徑文件夾。
點擊PDF文件來打開它。如果你已選擇好默認應用程序,那麼會自動打開文件。如果你剛剛安裝了一個PDF閱讀器,或設備上有多個PDF閱讀程序,那麼你需要選擇你想要使用的特定程序。
檢修故障
1、打開下載好的PDF文件時,出現「無法打開」的提示。導致這個問題的原因有很多。嘗試使用文件管理器打開下載的文件。你可以在下載文件夾中找到它。如果你可以用文件管理器打開文件,你可能需要重置瀏覽器。
打開設置應用重置瀏覽器。選擇「應用」,在應用列表中找到瀏覽器,然後點擊「清理數據」按鈕。
2、PDF試圖啟用錯誤的應用。如果PDF試圖用不支持讀取PDF文件的應用打開,那麼可能是因為設置了錯誤的默認打開程序。打開設置應用。
選擇「應用」。
選擇試圖打開PDF文件的應用。
在「默認打開程序」區域中,點擊「清除默認程序」。
嘗試再次打開PDF文件。你可以按提示,重新選擇要使用的應用。
方法4:iOS
1、點擊你想打開的PDF文件。iOS系統有內置的PDF閱讀器,可以打開郵件和網上的PDF文件。
2、點擊打開的PDF文件,打開菜單。這樣你可以用別的應用處理PDF文件。
3、點擊「打開」,或分享按鈕。如果你是在郵件應用中查看的PDF文件,你就可以使用分享按鈕;如果是在Safari中查看的PDF文件,你就可以使用「打開」按鈕。你可以看到所有支持PDF文件的應用。
4、選擇你想使用的應用。你可以使用iBook、Adobe Reader或其他設備中安裝應用。PDF會以你選擇的應用打開。
方法5:Kindle
1、將PDF文件傳輸到你的Kindle設備上。事實上有很多種傳輸文件的方法。你可以將你的Kindle連接到電腦上,並將文件添加到Kindle存儲中。點擊此處了解更多細節。
你可以使用免費的Kindle傳輸郵件將PDF文件通過無線網路傳輸到設備上。點擊此處了解詳情。
2、在你的Kindle設備上打開文件。當你完成文件傳輸後,從Kindle文庫中選擇並打開特定PDF文件。由於無法添加更多額外功能的其他程序,所以Kindle沒法實現可以與PDF進行更多的交互編輯等。
⑩ 如何從pdf中提取表格數據
可通過OCR識別從pdf中提取表格數據。常用軟體有:
1、Adobe Acrobat XI Pro打開PDF文檔,另存EXCEL格式。
2、用泰比(ABBYY) FineReader 11 軟體,它是高智能的文本識別、文本轉換和掃描識別軟體。
3、用漢王PDF OCR8.1簡體中文版的PDF識別軟體,簡單易用免費。
4、用EXCEL2013或以上版本直接打開。