本地環境:win10 x64,python3.8 x64
安裝:pip install pdfminer
使用:
按照官方給的方法使用一波,發現windows下沒給適配,運行pdf2txt.py直接彈出來編輯器編輯源代碼了,需要用python+絕對路徑+參數的方法調用
python (gcm pdf2txt.py).source -o outputfilename -O output_dir input.pdf
- -o:輸出文件名,可以通過文件拓展命指定轉換目標類型
- -O:輸出資源目錄,比如轉換成HTML文件,圖片文件存放目錄就在這里指定
跑一波
直接跑不通可還行,找來源代碼瞅瞅
看對filter調用的方法,filter應該是個list,直接 filters = stream.get_filters() 修改為 filters = list(stream.get_filters())
再試一波,這波沒報錯。
但是輸出的文件夾里只有一張圖,我pdf里上百張圖都去哪里了???
打開唯一的圖片發現是最后一張圖,盲猜一波pdf文件中的圖片都是這個名字,pdf2txt在解析抽取圖像的時候,只是簡單的用圖像在pdf里的名字保存,導致每次保存一張重名圖像都會把老圖替換掉。
剛剛出錯的文件名叫image.py應該是和圖像處理相關的,應該能找到圖像保存的邏輯。
果然!
在這里給文件名加個遞增前綴應該能解決問題。
定義一個生成遞增前綴滴函數,並在產生文件名時加上這個前綴
from time import time def prefix_(): return str(int(time()*10**6))
name = f'{prefix_()}_{image.name}.{ext}'
再跑一次
可以看到該有的都有了