diff --git a/page_splitter.py b/page_splitter.py index c290815..8a3e908 100644 --- a/page_splitter.py +++ b/page_splitter.py @@ -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":