效果看图1和图2
- import pymupdf
- import os
- import shutil
- from PIL import Image
-
- input_pdf = "VBA常用技巧.pdf"
- output_pdf = 'new_'+input_pdf
- output_images = "output_images"
-
- pdf_file = pymupdf.open(input_pdf)
- if not os.path.exists(output_images): os.mkdir(output_images)
- def convert_pdf_to_images():
- for pagenum in range(pdf_file.page_count):
- pdfpage = pdf_file[pagenum]
- zoom_x, zoom_y = :2,2
- mat = pymupdf.Matrix(zoom_x, zoom_y).prerotate(0)
- pix = pdfpage.get_pixmap(matrix=mat, alpha=False)
- if ((pagenum+1)>=0 and (pagenum+1)<=9):
- pix.save(f"./"+output_images+"/000"+str(pagenum+1)+".png")
- elif((pagenum+1)>=10 and (pagenum+1)<=99):
- pix.save(f"./"+output_images+"/00"+str(pagenum+1)+".png")
- elif((pagenum+1)>=100 and (pagenum+1)<=999):
- pix.save(f"./"+output_images+"/0"+str(pagenum+1)+".png")
- else:
- pix.save(f"./"+output_images+str(pagenum+1)+".png")
-
- def convert_images_to_pdf(input_dir, new_pdf):
- image_files = [f for f in os.listdir(input_dir) if
- f.endswith('.png') or f.endswith('.jpg')]
- images = []
- for image_path in image_files:
- image_path = os.path.join(input_dir, image_path)
- image = Image.open(image_path)
- images.append(image.convert("RGB"))
- images[0].save(new_pdf, save_all=True, append_images=images[1:])
-
- def delete_folder(path):
- try:
- shutil.rmtree(path)
- print(f"成功删除文件夹 {path}")
- except OSError as e:
- print(f"删除文件夹 {path} 失败: {e}")
-
- # convert_pdf_to_images()
- # convert_images_to_pdf(output_images,output_pdf)
- # delete_folder(output_images)