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批量將ppt轉換成pdf
你好,試試這個,希望能幫到你。
1. [代碼][Python]代碼
#!/usr/bin/env python
import os
import sys
from reportlab.lib.pagesizes import A4, landscape
from reportlab.pdfgen import canvas
f = sys.argv[1]
filename = ''.join(f.split('/')[-1:])[:-4]
f_jpg = filename+'.jpg'
print f_jpg
def conpdf(f_jpg):
f_pdf = filename+'.pdf'
(w, h) = landscape(A4)
c = canvas.Canvas(f_pdf, pagesize = landscape(A4))
c.drawImage(f, 0, 0, w, h)
c.save()
print "okkkkkkkk."
conpdf(f_jpg)
⑶ 怎樣利用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 有沒有將 html 文件轉換為 pdf 的庫
python 有沒有將 html 文件轉換為 pdf 的庫
說明:將以下腳本拷貝到vi中,保存,修改許可權執行,得到你想要的結果。
#!/bin/bash
cd /etc/named
cp honey.com.zone /tmp/honey.com.zone.bk
awk '/^@ IN NS nsl.honey.com./ {print "@ IN NS nsl.ashaur.com";next} \
/^www IN A 192.168.1.7/ {print "www IN A 192.168.1.6";next} \
{print}' honey.com.zone >/tmp/honey.com.zone.tmp
cp /tmp/honey.com.zone.tmp /etc/named/honey.com.zone
⑸ python怎麼轉成pdf
方法一:使用虛擬列印機pdf factory即可,而且其他格式文件只要是能夠列印,選擇這個虛擬列印機,都可以做成PDF文件,很簡單實用;
方法二:用其他虛擬列印機轉成PDF文件。
方法三:使用專門的轉換軟體,把文件轉成PDF文件。
⑹ 怎麼用 Python 將 pdf,doc 等轉換成 jpg
用office自帶的一個工具,可以把你掃描的文字型圖片轉換成文字,但是精確度不是很高 看圖軟體沒那個功能,你可以參以下方法,將圖片用WORD打開,成為圖片,選擇「文件」→「打穎,並選擇列印機為Microsoft Office Document Image Writer列印機,勾選...
⑺ 怎麼用python批量將ppt轉換成pdf
打開office轉換器
選擇批量轉換
選中文件後
點擊需要轉換的類型
然後點擊確定
⑻ VBA 或 python 如何批量將JPG文件轉PDF
# -*- coding:utf-8 -*-
#!/usr/bin/env python
import os
from reportlab.lib.pagesizes import A4, landscape
from reportlab.pdfgen import canvas
from tkinter import *
import time
# 圖片文件名稱列表
IMAGEFILES = []
class pdfTk(object):
def __init__(self):
'''用於生成主界面用於填寫'''
self.top = Tk()
self.sw = self.top.winfo_screenwidth()
self.sh = self.top.winfo_screenheight()
self.topw = 500
self.toph = 200
self.top.title('圖片轉pdf生成器')
self.top.geometry("%dx%d+%d+%d" % (self.topw, self.toph, (self.sw - self.topw) / 2, (self.sh - self.toph) / 2))
self._DIRPATH = StringVar(self.top)
self.emptfmone = Frame(self.top, height=50)
self.emptfmone.pack()
self.dirfm = Frame(self.top)
self.descriptLabel = Label(self.dirfm, width=4, text='路徑:')
self.descriptLabel.pack(side=LEFT)
self.dirn = Entry(self.dirfm, width=50, textvariable=self._DIRPATH)
#self.dirn.bind('<Return>', self.setPath)
self.dirn.pack(side=LEFT)
self.dirfm.pack()
self.emptfmtwo = Frame(self.top, height=30)
self.emptfmtwo.pack()
self.btnfm = Frame(self.top)
self.converBtn = Button(self.btnfm, width=10, text='生成PDF', command=self.doneAnyThing,
activeforeground='white', activebackground='blue')
self.quitBtn = Button(self.btnfm, width=10, text='退出', command=self.top.quit, activeforeground='white',
activebackground='blue')
self.converBtn.pack(side=LEFT, padx=10)
self.quitBtn.pack(side=LEFT, padx=10)
self.btnfm.pack()
def doneAnyThing(self):
self.getListImages(self._DIRPATH.get())
pdfFile = self.converPath(self._DIRPATH.get()) + self.dateStr() + ".pdf"
self.convertpdf(pdfFile)
def convertpdf(self, pdfFile):
'''多個圖片合成一個pdf文件'''
(w, h) = landscape(A4) #
cv = canvas.Canvas(pdfFile, pagesize=landscape(A4))
for imagePath in IMAGEFILES:
cv.drawImage(imagePath, 0, 0, w, h)
cv.showPage()
cv.save()
def getListImages(self, dirPath):
'''讀取指定文件夾下所有的JPEG圖片,存入列表'''
if dirPath is None or len(dirPath) == 0:
raise ValueError('dirPath不能為空,該值為存放圖片的具體路徑文件夾!')
if os.path.isfile(dirPath):
raise ValueError('dirPath不能為具體文件,該值為存放圖片的具體路徑文件夾!')
if os.path.isdir(dirPath):
for imageName in os.listdir(dirPath):
if imageName.endswith('.jpg') or imageName.endswith('.jpeg'):
absPath = self.converPath(dirPath) + imageName
IMAGEFILES.append(absPath)
def converPath(self, dirPath):
'''用於轉換路徑,判斷路徑後是否為\\,如果有則直接輸出,如果沒有則添加'''
if dirPath is None or len(dirPath) == 0:
raise ValueError('dirPath不能為空!')
if os.path.isfile(dirPath):
raise ValueError('dirPath不能為具體文件,該值為文件夾路徑!')
if not str(dirPath).endswith("\\"):
return dirPath + "\\"
return dirPath
def dateStr(self):
'''用於生成指定格式的日期,目的是為了拼接字元串'''
return time.strftime("%Y-%m-%d", time.localtime())
def main():
'''該函數主要用於生成PDF文件'''
pdfTk()
mainloop()
if __name__ == '__main__':
'''主函數,進行啟動'''
main()