效果看图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)