PDF随机重组
1、运行选择源文件
2、输出文件源文件路径,源文件名_out
需要安装pypdf2和tkinter库
import os
import random
from PyPDF2 import PdfReader, PdfWriter
import tkinter as tk
from tkinter import filedialog
def shuffle_pdf_pages(input_file):
pdf_reader = PdfReader(input_file)
pdf_writer = PdfWriter()
# 获取PDF文件的页数
num_pages = len(pdf_reader.pages)
page_order = list(range(num_pages))
# 随机重排页码顺序
random.shuffle(page_order)
# 将页面按照随机顺序添加到新的PDF
for page_index in page_order:
page = pdf_reader.pages[page_index]
pdf_writer.add_page(page)
return pdf_writer
def save_pdf(output_file, pdf_writer):
with open(output_file, "wb") as output_file:
pdf_writer.write(output_file)
def main():
root = tk.Tk()
root.withdraw()
input_file_path = filedialog.askopenfilename(filetypes=[("PDF Files", "*.pdf")])
if not input_file_path:
print("未选择输入文件。")
return
input_file_name = os.path.basename(input_file_path)
input_file_directory = os.path.dirname(input_file_path)
output_file_name = input_file_name.replace(".pdf", "_out.pdf")
output_file_path = os.path.join(input_file_directory, output_file_name)
pdf_writer = shuffle_pdf_pages(input_file_path)
save_pdf(output_file_path, pdf_writer)
print("输出文件保存在:", output_file_path)
if __name__ == "__main__":
main()