Python---PDF转JPG图片
生活随笔
收集整理的這篇文章主要介紹了
Python---PDF转JPG图片
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Python—PDF轉(zhuǎn)JPG圖片
三方庫安裝
需安裝pdf2image,配置poppler環(huán)境變量
參考:https://github.com/Belval/pdf2image
pdfimage 安裝
pip install pdf2imagepoppler安裝
Linux
apt-get install poppler-utilswindows
下載 poppler: https://blog.alivate.com.au/poppler-windows/
Centos安裝pdf2image
環(huán)境:centos8、python3.6.4
庫安裝
1、pip3 install poppler-utils
2、pip3 install pdf2image
3、yum install poppler
4、yum install poppler-utils
PDF轉(zhuǎn)換圖片為空的問題
若轉(zhuǎn)換得到的圖片為空白頁,說明PDF在轉(zhuǎn)換過程中遇到了未能識別的字體,需補充系統(tǒng)中的字體庫。
參考博客:
1、Linux 安裝字體庫
2、linux ttf,Linux篇:linux安裝字體
簡易版
import osfrom pdf2image import convert_from_pathdef pdf_to_jpg(pdf_path, jpg_save_path, one_page=False):"""將PDF文件轉(zhuǎn)換為JPG圖片:param pdf_path: PDF文件路徑:param jpg_save_path: JPG圖片保存路徑, 若one_page為False,輸入一個文件夾路徑保存所有JPG圖片:param one_page: True:返回 PDF首頁的JPG;False:返回 PDF所有頁的JPG:return:"""pages = convert_from_path(pdf_path, 200) # 若pdf有多頁,則返回一個列表if one_page:pages[0].save(jpg_save_path, 'JPEG')else:if not os.path.exists(jpg_save_path):os.mkdir(jpg_save_path) # 創(chuàng)建文件夾for i, page in enumerate(pages):page.save(jpg_save_path + str(i+1) + '.jpg', 'JPEG')if __name__ == "__main__":pdf_path = "../data/pdfdemo.pdf"# 保存第一張圖片# jpg_save_path = "../data/pdfimg.jpg"# one_page = True# pdf_to_jpg(pdf_path, jpg_save_path, one_page)# 將每頁圖片都保存jpg_save_path = "../data/pdfimg/"one_page = Falsepdf_to_jpg(pdf_path, jpg_save_path, one_page)整合
import osfrom pdf2image import convert_from_pathclass IMGConverter:def __init__(self, dir_path, save_dir_path):self.dir_path = dir_path # 保存pdf文件的文件夾路徑self._export_folder = save_dir_path # 保存圖片的文件夾路徑self._filename_list = list() # 保存pdf文件名if not os.path.exists(self._export_folder):os.mkdir(self._export_folder)# print(self._export_folder)self._enumerate_filename()def _enumerate_filename(self):"""讀取所有文件名"""for name in os.listdir(self.dir_path):if self.is_legal_postfix(name):self._filename_list.append(name)else:continue# 檢查文件名是否合法def is_legal_postfix(self, filename):return filename.split('.')[-1].lower() == 'pdf' and not os.path.basename(filename).startswith('~')def run_conver(self):"""批量處理轉(zhuǎn)換操作,將一個文件夾下的pdf文件皆轉(zhuǎn)換為jpg圖片"""print('需要轉(zhuǎn)換的文件數(shù):', len(self._filename_list))for filename in self._filename_list:print('原文件:', filename)self.pdf2img(filename, self._export_folder)print('轉(zhuǎn)換完成!')def pdf2img(self, pdf_name, img_save_dir):"""將pdf文件轉(zhuǎn)為jpg格式圖片,若pdf有多頁,則返回多張圖片pdf_path:pdf文件路徑img_path:轉(zhuǎn)換后的圖片存放路徑"""pages = convert_from_path(self.dir_path + '/' + pdf_name, 200)for i, page in enumerate(pages):page.save(img_save_dir + '/' + pdf_name[:-4] + '-' + str(i) + '.jpg', 'JPEG')if __name__ == "__main__":dir_path = r'C:\Users\Dell\Desktop\recog'save_dir_path = r'C:\Users\Dell\Desktop\img123'ob = IMGConverter(dir_path, save_dir_path)ob.run_conver()總結
以上是生活随笔為你收集整理的Python---PDF转JPG图片的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux下find用法总结
- 下一篇: C++调用Python函数