扫描全能王去水印

import time
from PIL import Image, ImageDraw
import fitz  # PyMuPDF
import os
from PIL import Image
from PyPDF2 import PdfMerger
def pdf_to_images(pdf_path, output_folder):
    img_paths = []
    doc = fitz.open(pdf_path)  # 打开PDF文件
    for page_num in range(len(doc)):  # 逐页处理
        page = doc.load_page(page_num)
        pix = page.get_pixmap(dpi=300)  # 设置DPI(默认96)
        output_path = f"{output_folder}/page_{page_num+1}.png"
        pix.save(output_path)  # 保存为PNG格式
        img_paths.append(output_path)
    doc.close()
    return img_paths
# cs扫描王(2135, 3365, 2440, 3470)
# 扫描全能王
def qsysb(img_path, out_path):
    # 打开图片
    img = Image.open(img_path)
    draw = ImageDraw.Draw(img)
    rect_area = (1800, 3300, 2440, 3470)  # 示例坐标
    # 绘制白色矩形(RGB:255,255,255)
    draw.rectangle(rect_area, fill=(255, 255, 255))
    # 保存结果
    img.save(out_path)
def qsyhb(img_path, out_path):
    # 打开图片
    img = Image.open(img_path)
    draw = ImageDraw.Draw(img)
    rect_area = (2800, 2100, 3460, 4000)  # 示例坐标
    # 绘制白色矩形(RGB:255,255,255)
    draw.rectangle(rect_area, fill=(255, 255, 255))
    # 保存结果
    img.save(out_path)
# 合并文件夹内的图片,生成pdf
def images_to_pdf(folder_path, output_pdf, image_files):
    # 创建临时PDF文件列表
    temp_pdfs = []
    # try:
    # 将每张图片转换为单独的PDF
    for i, image_file in enumerate(image_files):
        output_temp = os.path.join(folder_path, f"temp_{i}.pdf")
        image = Image.open(image_file)
        if image.mode == 'RGBA':
            image = image.convert('RGB')
        image.save(output_temp, "PDF", resolution=100.0)
        temp_pdfs.append(output_temp)
    # 合并所有临时PDF
    merger = PdfMerger()
    for pdf in temp_pdfs:
        merger.append(pdf)
    merger.write(output_pdf)
    merger.close()
    print(f"PDF文件已成功生成: {output_pdf}")
pdf_path = "F:/新建文件夹/扫描.pdf"
output_folder = "F:/新建文件夹/a"
# 1、将pdf转化为图片,并获取所有图片的信息
img_paths = pdf_to_images(pdf_path, output_folder)
# 2、创建一个文件夹存放去水印的图片
folder_path = output_folder + "/" + "qsy"
if not os.path.exists(folder_path):
    os.makedirs(folder_path)
    print(f"文件夹 '{folder_path}' 创建成功!")
else:
    print(f"文件夹 '{folder_path}' 已存在。")
# 3、将所有的图片去掉水印
out_address = []
for img_path in img_paths:
    img = Image.open(img_path)
    out_paths = img_path.split(".")
    out_path = out_paths[0] + "qsy" + "." + out_paths[1]
    if img.width < img.height:
        qsysb(img_path, out_path)
    else:
        qsyhb(img_path, out_path)
    out_address.append(out_path)
# 4、将去水印的图片合成pdf
# time.sleep(150)
output_pdf = folder_path  + "/cs去水印.pdf"
images_to_pdf(folder_path, output_pdf, out_address)
posted @ 2025-06-04 17:39  打盹的闲鱼  阅读(32)  评论(0)    收藏  举报