From 7575f61dbd4ce70f5c220352d3fe4ba2abe31811 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Miquel?= Date: Sun, 8 Feb 2026 16:24:56 +0100 Subject: [PATCH] =?UTF-8?q?Fix=20page=5Fsplitter=20sorting=20for=20dd=20fi?= =?UTF-8?q?les=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- page_splitter.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/page_splitter.py b/page_splitter.py index 9dbd1aa..34d5536 100644 --- a/page_splitter.py +++ b/page_splitter.py @@ -4,6 +4,7 @@ from tkinter import messagebox from PIL import Image, ImageTk, ImageDraw import sys import os +import re import glob import shutil from pypdf import PdfReader, PdfWriter @@ -288,7 +289,10 @@ class PDFPreviewer: def finish_and_process(self): """Starts the PDF splitting process and moves files.""" self.split_pdf() + # print("Debug : ", self.page_settings) + # input("Splitting done. Continue ?") self.reorder_pdfs() + # input("Reorder done. Continue ?") self.concate_files() # Logic to move original to backup and replace with new file @@ -421,7 +425,13 @@ class PDFPreviewer: def concate_files(self): writer = PdfWriter() - pdf_files = sorted(glob.glob(os.path.join(self.reorder_dir, "*.pdf"))) + def natural_key(text): + return [int(c) if c.isdigit() else c.lower() for c in re.split(r'(\d+)', text)] + + pdf_files = sorted( + glob.glob(os.path.join(self.reorder_dir, "*.pdf")), + key=natural_key + ) for pdf in pdf_files: reader = PdfReader(pdf)