page_splitter : support for 'as_is'

master
Sébastien Miquel 2026-03-11 07:46:13 +01:00
parent adecf1f281
commit b18408e9b2
1 changed files with 17 additions and 3 deletions

View File

@ -93,7 +93,7 @@ class PDFPreviewer:
instructions = (
"← / → : Move line 1cm left/right\n"
"'c': Rotate page 180°, 'C' : rotate all pages, ',' : rotate all files\n"
"t s r n: keep left, next page, keep none, keep right\n"
"t s r n m: keep left, next page, keep none, keep right, keep as is\n"
"z: send this page to the end, 'R':restart file, 'P':back to previous file\n"
)
self.info_label = tk.Label(master, text=instructions, justify=tk.LEFT)
@ -118,6 +118,7 @@ class PDFPreviewer:
self.master.bind(",", self.rotate_all_files)
self.master.bind("t", self.keep_left)
self.master.bind("n", self.keep_right)
self.master.bind("m", self.keep_as_is)
self.master.bind("s", self.confirm_and_next_page)
self.master.bind("r", self.discard_page)
self.master.bind("z", self.send_page_end)
@ -252,6 +253,8 @@ class PDFPreviewer:
self.confirm_and_next_page(keep="right")
def discard_page(self, event=None):
self.confirm_and_next_page(keep="none")
def keep_as_is(self, event=None):
self.confirm_and_next_page(keep="as_is")
def send_page_end(self, event=None):
# Do nothing if we are already at or past the last page
if self.current_page_index >= len(self.doc) - 1:
@ -361,7 +364,7 @@ class PDFPreviewer:
self.setup_next_file()
self._initialize_current_page_settings()
self.load_page()
def split_filename_left(self, i):
return os.path.join(self.split_dir, f"{self.base_name}_{i+1}l.pdf")
def split_filename_right(self, i):
@ -396,6 +399,17 @@ class PDFPreviewer:
rotation = (page.rotation + rotation_settings +
self.file_rotation + self.global_rotation) % 360
if keep == "as_is":
doc_full = fitz.open()
page_full = doc_full.new_page(width=page.rect.width, height=page.rect.height)
page_full.show_pdf_page(page_full.rect, self.doc, i)
page_full.set_rotation(rotation)
output_path_full = self.split_filename_left(i)
doc_full.save(output_path_full)
doc_full.close()
continue # Skip left/right generation
# --- Create Left Part ---
if rotation == 0:
rect_left = fitz.Rect(0, 0, line_x, page.rect.height)
@ -454,7 +468,7 @@ class PDFPreviewer:
i += 2
else:
psk = ps[i]['keep']
if psk == "left" or psk == "both":
if psk == "left" or psk == "both" or psk == "as_is":
shutil.copy2(self.split_filename_left(i), self.reorder_filename(ri))
ri += 1
if psk == "right" or psk == "both":