python處理pdf文件
① python怎樣讀取pdf文件的內容
1,引言
晚上翻看《Python網路數據採集》這本書,看到讀取PDF內容的代碼,想起來前幾天集搜客剛剛發布了一個抓取網頁pdf內容的抓取規則,這個規則能夠把pdf內容當成html來做網頁抓取。神奇之處要歸功於Firefox解析PDF的能力,能夠把pdf格式轉換成html標簽,比如,div之類的標簽,從而用GooSeeker網頁抓取軟體像抓普通網頁一樣抓取結構化內容。
從而產生了一個問題:用Python爬蟲的話,能做到什麼程度。下面將講述一個實驗過程和源代碼。
2,把pdf轉換成文本的Python源代碼
下面的python源代碼,讀取pdf文件內容(互聯網上的或是本地的),轉換成文本,列印出來。這段代碼主要用了一個第三方庫PDFMiner3K把PDF讀成字元串,然後用StringIO轉換成文件對象。(源代碼下載地址參看文章末尾的GitHub源)
復制代碼
from urllib.request import urlopen
from pdfminer.pdfinterp import PDFResourceManager, process_pdf
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from io import StringIO
from io import open
def readPDF(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()
return content
pdfFile = urlopen("http://pythonscraping.com/pages/warandpeace/chapter1.pdf")
outputString = readPDF(pdfFile)
print(outputString)
pdfFile.close()
復制代碼
如果PDF文件在你的電腦里,那就把urlopen返回的對象pdfFile替換成普通的open()文件對象。
3,展望
這個實驗只是把pdf轉換成了文本,但是沒有像開頭所說的轉換成html標簽,那麼在Python編程環境下是否有這個能力,留待今後探索。
4,集搜客GooSeeker開源代碼下載源
1. GooSeeker開源Python網路爬蟲GitHub源
5,文檔修改歷史
2016-05-26:V2.0,增補文字說明
2016-05-29:V2.1,增加第六章:源代碼下載源,並更換github源的網址
② 怎樣利用python將pdf轉換成jpg格式
可以用第三方庫wand實現(我的環境:win10、python3)
需要安裝wand 、imagemagick和ghostscript
wand的安裝很簡單:直接cmd 運行pip install wand
然後安裝imagemagick ,從這里下載網頁鏈接,注意是32位還是64位,這個需要和python的位數一致。
安裝過程注意勾選Install development headers and libraries for C and C++ 。安裝後設置MAGICK_HOME環境變數,值為imagemagick的安裝路徑,並將安裝路徑加入path。
詳情可參照此頁面網頁鏈接。
最後安裝ghostscript,這里下載網頁鏈接,選擇AGPL release,注意32位還是64位。
安裝過程很簡單,一路點擊next,如果不想安裝在c盤,可以改變安裝路徑,這個沒有影響。
最後上代碼(很簡單):
#-*-coding:utf-8-*-
fromwand.imageimportImage
withImage(filename="pdf_file_name",resolution=300)asimg:
img.format='jpeg'
img.save(filename='converted.jpg')
上面的pdf_file_name輸入要處理的pdf文件名,最後會在當前目錄下生成converted.jpg
說明:這幾行代碼比較簡單,處理頁數較少的pdf還行,頁數太多會卡住。但是可以用pyPDF2分割pdf然後轉換,這是一種思路,關於pyPDF2的教程自行網路吧。
③ python怎麼合並pdf
<
用下面的方法可以把多個pdf合並成一個PDF文件。
方法一:
1、運行Aaobe acrobat ,然後點擊「創建」—「合並文件到單個PDF」,或者點擊「 創建」右側的「合並」—「合並文件到單個PDF」。
2、彈出「合並文件」的界面,點擊「添加文件」—選擇「添加文件」/「添加文件夾」/「重新使用文件」來進行添加要合並的PDF文件。
3、彈出「添加文件」的界面,選擇好要合並的PDF文件後,點擊「添加文件」,完成要合並pdf文件的添加。
4、看到文件已添加完成,如果要調整合並文件的順序,可以選中該文件然後用左下角的「向上」、「向下」按鍵來進行順序的調整,調整完畢後點擊右下角的「合並文件」按鍵。如果只想合並已添加單個pdf文件中的某幾個頁面可以通過「選擇頁面」選取想要添加的頁面。
5、合並完成以後,會直接打開合並好的文件,名字一般為「組合1」,並自動彈出「另存為」窗口,根據需要變更文件點擊保存即可把合並好的文件保存下來。
方法二:
運行PDF Binder,彈出PDF合並器功能界面,點擊「添加文件」,添加要合並的PDF文件。
在打開界面選擇好要合並的PDF文件後,點擊「打開」,完成要合並pdf文件的添加。
下圖可以看到文件已添加完成,如果要調整合並文件的順序,可以選中該文件然後用功能區的「向上」、「向下」按鍵來進行順序的調整,調整完畢後點擊「合並!」按鍵。
在彈出的「另存為」界面輸入文件名,點擊保存完成文件合並,打開文檔可以看到文檔已合並成功。
方法三,其他如Ap PDF Split-Merge等軟體合並文件。
④ 如何把pdf文件轉換成word文件 Python文件處理之文件指針
對於不允許做修改的PDF文件——就是加密加了許可權的PDF,首先要去除密碼或者去除數字證書,推薦用PDF Password Remove,然後再按照下面的方法進行轉換為word文件:
方法一:用軟體PDF To Word Converter,使用之後然後有兩種結果
1、轉化出來的就是想要的word,這種情況最理想了;
2、轉化出來的word上都是圖片,需要上網找「ABBYY finereader v9」一類的文字識別軟體。ABBYY finereader v9是我見過的最強大的PDF(圖片格式或者是掃描件)轉word的軟體。它是一款OCR軟體,界面比較簡潔明,9.0和以上版本有簡體中文版的,支持100語言的識別,特別是混合多種語言識別效果也非常好:安裝完畢之後,首先把圖片上的文字識別出來,然後再對照圖片把識別錯誤的地方改過來,這樣就實現了,從JPEG文件到word的格式轉換。
方法二:在線PDF轉Word共有以下幾個步驟:
• 點擊瀏覽按鈕選擇需要轉換的PDF文件。
• 輸入需要轉換的頁碼,以逗號分割開,如果轉換所有的頁面可以跳過這一步。
• 點擊按鈕上傳文件,然後等著就可以了。
• 點擊下載鏈接把做好的文件下載到本地就可以了;
方法三:用其他軟體Wondershare PDFelement等處理。
⑤ Python可以用來自動化辦公 實現批量Word轉pdf嗎
這里需要導入幾個模塊
from win32com.client import Dispatch # 沒有的話輸入pip install pywin32命令 即可安裝
from os import walk
import os
os是用於文件處理常用的模塊,至於Dispatch,它是提供了一個介面, win32提供了多種word轉換為其他文件的介面,其中FileFormat=17是轉換為pdf格式.
之後轉換文件邏輯也很簡單,首先需要提取出文件名,word文件的後綴是doc或docx,那麼將後綴名替換為pdf即可轉換,這里用到replace方法,即replace(『docx』,『pdf』).replace(『doc』,『pdf』)因為有可能後綴是doc,所以需要2次判斷。
值得注意的是,轉換的文件夾事先要存在,否則會報錯誤。
下面是項目的源代碼
復制代碼
from win32com.client import Dispatch # pip install pywin32
from os import walk
import os
wdFormatPDF = 17 # win32提供了多種word轉換為其他文件的介面,其中FileFormat=17是轉換為pdf
def doc2pdf(input_file, input_file_name, output_dir):
try:
word = Dispatch('Word.Application')
doc = word.Documents.Open(input_file)
except Exception as e:
print("word無法打開, 發生如下錯誤:\n{}".format(e))
try:
pdf_file_name = input_file_name.replace(".docx", ".pdf").replace(".doc", ".pdf")
pdf_file = os.path.join(output_dir, pdf_file_name)
doc.SaveAs(pdf_file, FileFormat=wdFormatPDF)
doc.Close()
word.Quit()
print("成功轉換\"{}\"".format(input_file_name))
print()
except Exception as e:
print("文件保存失敗, 發生如下錯誤:\n{}".format(e))
if __name__ == "__main__":
path_in=input("請輸入word文件夾的路徑(絕對路徑) 要保證存在 建議復制粘貼")
path_out=input("請輸入pdf文件夾的路徑(絕對路徑) 要保證存在 建議復制粘貼")
doc_files = []
directory = path_in# word文件夾
output_dir =path_out # pdf文件夾
for root, _, filenames in walk(directory): # 第2個返回值是dirs, 用不上使用_佔位
for file in filenames:
if file.endswith(".doc") or file.endswith(".docx"):
print("轉換{}中......".format(file))
doc2pdf(os.path.join(root, file), file, output_dir)
復制代碼
⑥ python 遍歷文件夾PDF並轉換成圖片
這種圖片的也可以轉換成圖片的形式,一般文件夾要進行一個轉化才可以變成圖片。
⑦ python將pdf轉圖片
方法1:打開pdf文件,選擇菜單命令「文件」 → 「另存為」 ,彈出另存為對話框,選擇保存類型為「jpg」,保存即可;
方法2:打開pdf文檔,選擇命令 「另存為其它」 → 「圖像」 → 「JPEG或JPEG2000」;
方法3:打開pdf文檔,選擇「編輯」菜單下的「拍快照」(註:選中後,在拍快照前面會有個√顯示),同時滑鼠變成十字游標,此時拖動滑鼠框選你要變換的區域,松開滑鼠,彈出確認對話框,點擊確認,此時框選的部分已經保存到剪貼板,然後打開系統自帶的畫圖工具,粘貼後保存為jpg文檔。方法不適合圖片過多的情況,不建議使用!
方法4:試試在線PDF轉圖片共有以下幾個步驟:
• 點擊瀏覽按鈕選擇需要轉換的PDF文件。
輸入需要轉換的頁碼,以逗號分割開,如果轉換所有的頁面可以跳過這一步。
• 點擊按鈕上傳文件,然後等著就可以了。
• 點擊下載鏈接把做好的文件下載到本地就可以了。僅適合低於2MB的文件轉換!
方法5:藉助pdf轉換器。選中pdf轉圖片功能,然後右下角選擇「上傳文件或文件夾」,即可一鍵開始轉換,此外還支持轉word、excel、ppt等格式。
⑧ python怎麼轉成pdf
方法一:使用虛擬列印機pdf factory即可,而且其他格式文件只要是能夠列印,選擇這個虛擬列印機,都可以做成PDF文件,很簡單實用;
方法二:用其他虛擬列印機轉成PDF文件。
方法三:使用專門的轉換軟體,把文件轉成PDF文件。
⑨ python將pdf轉成excel
方法一:ABBYY finereader v9是我見過的最強大的PDF(圖片格式或者是掃描件)轉excel的軟體。它是一款OCR軟體,界面比較簡潔明,9.0和以上版本有簡體中文版的,支持100語言的識別,特別是混合多種語言識別效果也非常好。
國內的OCR軟體僅僅是對中文的識別比較好而已。而且,這款軟體只要你設置好識別文件所用的語言然後打開PDF文件(支持直接打開的)然後其他的工作就交給軟體了,識別完後 文件------另存為excel格式就可以了。而且版面的保持能力是我見過的OCR軟體裡面最好的一個,識別率也是最高的一個,就是轉換識別的速度比較慢。只要PDF文件比較清晰,准確率基本可以達到95%以上(除了數學公式、計算式、化學式、分子式、三角函數等專業的內容之外),強力推薦大家使用。
方法二:在線PDF轉Excel共有以下幾個步驟:
• 點擊瀏覽按鈕選擇需要轉換的PDF文件。
• 點擊按鈕上傳文件,然後等著就可以了。
• 點擊下載鏈接把做好的文件下載到本地就可以了。
方法三:用其他軟體Wondershare PDFelement等處理。