如何找人幫我做網(wǎng)站推廣網(wǎng)絡(luò)輿情監(jiān)測(cè)系統(tǒng)軟件
有小伙伴問了怎么將 pdf文件轉(zhuǎn)圖片的問題,我百度了一波兒,搞了以下python代碼給他封裝成exe工具了。
中途打包踩了個(gè)坑,python進(jìn)程池的問題,本地運(yùn)行沒啥問題,打包好的exe文件雙擊就會(huì)使電腦內(nèi)存爆破卡死,重新開機(jī)才好。
準(zhǔn)備工作:
- 安裝PyMuPDF 直接 pip install PyMuPDF 即可
- 在代碼當(dāng)前路徑創(chuàng)建一個(gè)名為pdf_dir的文件夾,用于存放要轉(zhuǎn)換的pdf 文件
以下是代碼實(shí)現(xiàn),支持批量轉(zhuǎn)換,可以放多個(gè)pdf文件
# -*- coding: UTF-8 -*-
import multiprocessing
from multiprocessing import Pool
# 安裝fitz需要安裝PyMuPDF才能使用
import fitz
import os
import timetmp = 'pdf_dir' #pdf路徑export_file = "導(dǎo)出文件"os.makedirs(export_file, exist_ok=True)
pdf_dir = [i for i in os.listdir(tmp) if os.path.splitext(i)[-1] == ".pdf"]def pdf_to_jpg(name):# 拼接pdf的文件路徑pwd_name = os.path.join(tmp, name)print(pwd_name)doc = fitz.open(pwd_name)print(1111)# 將文件名同我們的保存路徑拼接起來(保存圖片的文件夾)dir_name = os.path.splitext(name)[0]pdf_name = os.path.join(export_file, dir_name)# print(pdf_name)temp = 0os.makedirs(pdf_name, exist_ok=True)for pg in range(doc.pageCount):page = doc[pg]temp += 1rotate = int(0)# 每個(gè)尺寸的縮放系數(shù)為2,這將為我們生成分辨率提高四倍的圖像。zoom_x = 2.0zoom_y = 2.0trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)pm = page.getPixmap(matrix=trans, alpha=False)pic_name = '{}.png'.format(temp)# 拼接生成pdf的文件路徑pic_pwd = os.path.join(pdf_name, pic_name)print(pic_pwd)pm.writePNG(pic_pwd)def main():pool = Pool(10)for i in pdf_dir:res = pool.apply_async(pdf_to_jpg, (i,))pool.close()pool.join()if __name__ == '__main__':# 如果要打包成exe供別人使用,要加上下面這行,不然會(huì)爆破電腦內(nèi)存,導(dǎo)致電腦卡死multiprocessing.freeze_support()st = time.time()main()end_time = time.time()print('總用時(shí):%s'%(end_time-st))
比如我們放了一個(gè)pytorch.pdf的文件,直接運(yùn)行代碼
直接就成功了