python識別pdf文件
① pdf文檔下劃線python識別不出來
識別 pdf 文檔中的下劃握巧空線要使用到寬兆第三方庫,比如 Python 的 pdfminer 或者 Apache 的 Tika。可以通過段瞎這些工具來識別出文檔中的下劃線。
② python自動化-pdf文檔操作
使用第三方庫
官方文檔:pymupdf.readthedocs.io/en/latest/
提取態胡局圖片的整體邏輯如下:
將每一頁轉換為一張張圖片
安裝pdf2image, github:github.com/Belval/pdf2…
安裝:
使用庫: github.com/2Dou/waterm…
步帆讓驟:
1.獲得一個帶水印pdf文件
1.1在圖片添加水印,圖片插入到word,word保存為pdf
1.2python處理:參考
github.com/2Dou/waterm…
mp.weixin.qq.com/s/_oJA6lbsd…
2.將水印pdf文件合並到源目標pdf文件的每一頁
法1,直接在word,插入文本框,旋轉,設置無邊框,注意設置背景透明,然後復制多個。導出為pdf。
法2,word本身自己的增加水印,設計-水印-自定義文字或圖片。缺點是只能是單個水印。
缺點是水印在內容pdf上方,如果設置過大,顏色不太透明,會遮擋內容。
解密:並不是破解,而是做搏在已知密碼的情況下解密
作者:秦與商
鏈接:https://juejin.cn/post/7069582991982329893
③ 如何利用Python對PDF文件做OCR識別
1.安裝tesseract
2.安裝PyOCR
3.安裝Wand和PIL
在我們開始之前,還需要另外安裝兩個依賴包。一個是Wand。它是Imagemagick的Python介面。
我們需要使用它來將PDF文件轉換成圖像:
我們也需要PIL因為PyOCR需要使用它。你可以查看官方文檔以確定如何將PIL安裝到你的操作系統中。
5.開始
現在我們需要獲得OCR庫(在本例中,即tesseract)的句柄以及我們在PyOCR中將使用的語言:
我們使用tool.get_available_languages里的第二種語言,因為之前我曾嘗試過,第二種語言就是英語。
接著,我們需要建立兩個列表,用於存儲我們的圖像和最終的文本。
下一步,我們需要採用wand將一個PDF文件轉成jpeg文件。讓我們試一試吧!
注意:將PDF_FILE_NAME替換成當前路徑下的一個可用的PDF文件名。
wand已經將PDF中所有的獨立頁面都轉成了獨立的二進制圖像對象。我們可以遍歷這個大對象,並把它們加入到req_image序列中去。
現在,我們僅僅需要在圖像對象上運行OCR即可,非常簡單:
現在,所有識別出的文本已經加到了final_text序列中了。你可以任意地使用它。以上就是利用Python對PDF文件做OCR識別的全部內容,希望這個教程能夠幫助到你們!
④ Python解析PDF表格——PDFPlumber vs Camelot
題圖來自 Camelot: List o』 10 Intriguing Mythical Places
為獲取LEED認證項目的評分表明細,可念帶以從USGBC的項目頁面上爬取,或者從pdf格式的項目評分表中解析得到。以 重慶某LEED EM:OB v2009 Gold項目 為例,USGBC上公布的 LEED項目得分表 其格式並不統一,利用XPath爬取後需要進一步清洗處理。相對而言,LEED項目所對應的 項目評分表PDF文件 的數據更為規范完整。因此考慮嘗試解析出PDF文件中的表格,以便後續分析。
Python 處理PDF文件的程序包,pdfminer、tabula、型高缺pdfplumber、camelot……查詢資料表明,似乎普遍認為pdfminer的效果不怎麼好,而tabula需要java支卜辯持 ,想偷懶於是只試了pdfplumber和camelot。
安裝過程不贅述,直接來看運行結果。
pdfplumber無法直接解析出Scorecard.pdf文件中的表格,但實際上要解決此問題也並非難事。調整下思路,可先解析出pdf文件中的文本,讓後通過分列來得到表格。
利用pdfplumber的extract_text()命令可解析出pdf文件中的文本,但由於本次需要解析的得分表pdf文件的排版的原因,左右兩個表格的文本行並未完全對齊,因此如果直接解析完整頁面上的文本的話,文字會出錯。先用corp()命令指定識別范圍,然後再extract_text(),識別得到的文本列表如下所示。
對於類似本例中Scorecard.pdf表格排版有錯位的情況,也可以按照表格在頁面中所處的位置,指定表格識別的范圍。所用到的指令:camelot.plot()可以繪制出頁面的略圖,table_area參數可以指定表格識別的范圍。
又及,Camelot原來是亞瑟王和圓桌騎士們的宮殿所在地,和Asgard的Valhalla一樣,也是傳說中的聖域。搜索camelot程序安裝包時無意中學到的,漲知識了。
[1] Python:解析PDF文本及表格——pdfminer、tabula、pdfplumber 的用法及對比
[2] 用Python提取pdf文件中的表格數據
[3] python讀取pdf文件
[4] Github: pdfplumber
[5] Camelot: PDF Table Extraction for Humans
[6] ImageMagick Installation
[7] ImageMagick之PDF轉換成圖片(image)
[8] LEED 2009 for Existing Buildings: Operations & Maintenance
[9] Camelot - Wikipedia
[10] List o』 10 Intriguing Mythical Places
[11] Camelot識別pdf表格時的參數設置補充
⑤ python識別pdf的條形碼
可以用pyzbar模塊。pyzbar模塊和拆是Python一個開源游喊庫,用於掃描和識別二維碼信息。Python是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。Python的設計具有很強神棚野的可讀性,相比其他語言經常使用英文關鍵字,其他語言的一些標點符號,它具有比其他語言更有特色語法結構。
⑥ python怎樣讀取pdf文件的內容
fromurllib.requestimporturlopen
frompdfminer.,process_pdf
frompdfminer.converterimportTextConverter
frompdfminer.layoutimportLAParams
fromioimportStringIO
fromioimportopen
defreadPDF(pdfFile):
rsrcmgr=PDFResourceManager()
retstr=StringIO()
laparams=LAParams()
device=TextConverter(rsrcmgr,retstr,laparams=laparams)
process_pdf(rsrcmgr,device,pdfFile)
device.close()
content=retstr.getvalue()
retstr.close()
returncontent
pdfFile=urlopen("chapter1.pdf")
outputString=readPDF(pdfFile)
print(outputString)
pdfFile.close()
⑦ python怎樣讀取pdf文件的內容
1、首先要下載一個處理pdf的組件pdfminer,網路搜索去官網下載
2、下載完成解壓以後,打唯液開cmd進入用命令安裝。python setup.py install 進行安裝
3、我們來測試一下是否安裝成功了,引入這個模塊,運行一下代碼,沒有報錯就說明安裝成功了
4、官網有文檔也有代碼示例
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfpage import PDFTextExtractionNotAllowed
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.pdfdevice import PDFDevice
fp = open('mypdf.pdf', 'rb')
#創建一個PDF文檔解析器對象
parser = PDFParser(fp)
#創建一個PDF文檔對象存儲文指森物檔結構
#提供密碼初始化,沒有就不用傳該參數
document = PDFDocument(parser, password)
#檢查文件是否允許文本提取
if not document.is_extractable:
raise PDFTextExtractionNotAllowed
#創建一個PDF資源管理器對象來存儲共享資源
rsrcmgr = PDFResourceManager()
#創建一個pdf設備對象
device = PDFDevice(rsrcmgr)
#創建一個PDF解析器對象
interpreter = PDFPageInterpreter(rsrcmgr, device)
#處理文檔當中的每個頁面
for page in PDFPage.create_pages(document):
interpreter.process_page(page)
5、我春肆新建一個pdf,新輸入一些內容
6、運行一下代碼即可
⑧ python如何檢測是不是需要旋轉pdf
是的,1.導入PyPDF2模塊之後使用open()方法打開pdf文件並且調用Reader方法直接將這個pdf文件之中的所有頁面都給讀取出來,讀取出來之後返回的是一個可迭代對象。然後使用getPage()方法獲取其中的某一個頁面,代碼如下所示:
import PyPDF2
reader = PyPDF2.PdfFileReader(open('a.pdf','rb'))
page = reader.getPage(0)
2.以上代轎慧碼之中的page所返回的就是pdf文件第一頁,使用它去調用rotateClockwise()方法就能夠將其90度旋轉,示例如下:
page.rotateClockwise(180)
這個方法一次只能夠對一個頁面進行修改操作,並且參數必須為90度及其倍數。也就是只能選擇90、180、270、360這四個度數,而且選擇是順時針選擇的,旋轉之後的頁面會自動調整格式。
3.頁面旋轉完畢之後還需要實例化出來一個文件寫入對象,然後使者渣用這個閉嫌答對象將修改旋轉後的頁面添加到原pdf文件之中。再打開一個新的pdf文件用來保存,然後使用write()方法將頁面寫入之後將其關閉掉就好了,代碼示例如下:
output = PyPDF2.PdfFileWriter()
outputStream = open ("b.pdf","wb")
output.write(outputStream)
outputStream.close()
⑨ python怎樣讀取pdf文件的內容
首先要下載一個處理pdf的搭穗游組件pdfminer,網路搜索去官網下載
下載完成解壓以後,打開cmd進入用命令安裝。python setup.py install 進行安裝
我們來測試一下是否安裝成功了,引入這個模塊,運行一下代碼,沒有報錯就說明安裝成功了
官網有文檔也有知銷代碼示例
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfpage import PDFTextExtractionNotAllowed
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.pdfdevice import PDFDevice
fp = open('mypdf.pdf', 'rb')
#創建一個PDF文檔解析器對象
parser = PDFParser(fp)
#創建一個PDF文檔對象存儲文檔結構
#提供密碼初始化,沒有就不用傳該參數
document = PDFDocument(parser, password)
#檢查文件是否允許文本提取
if not document.is_extractable:
raise PDFTextExtractionNotAllowed
#創建一個PDF資源管理器對象來存儲共享資源
rsrcmgr = PDFResourceManager()
#創建一個pdf設備對象
device = PDFDevice(rsrcmgr)
#創建一個PDF解析器對象
interpreter = PDFPageInterpreter(rsrcmgr, device)
#處理文檔當中的每族隱個頁面
for page in PDFPage.create_pages(document):
interpreter.process_page(page)
我新建一個pdf,新輸入一些內容
運行一下代碼,看一下效果