page_splitter : support for 'as_is'
parent
adecf1f281
commit
b18408e9b2
|
|
@ -93,7 +93,7 @@ class PDFPreviewer:
|
||||||
instructions = (
|
instructions = (
|
||||||
"← / → : Move line 1cm left/right\n"
|
"← / → : Move line 1cm left/right\n"
|
||||||
"'c': Rotate page 180°, 'C' : rotate all pages, ',' : rotate all files\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"
|
"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)
|
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(",", self.rotate_all_files)
|
||||||
self.master.bind("t", self.keep_left)
|
self.master.bind("t", self.keep_left)
|
||||||
self.master.bind("n", self.keep_right)
|
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("s", self.confirm_and_next_page)
|
||||||
self.master.bind("r", self.discard_page)
|
self.master.bind("r", self.discard_page)
|
||||||
self.master.bind("z", self.send_page_end)
|
self.master.bind("z", self.send_page_end)
|
||||||
|
|
@ -252,6 +253,8 @@ class PDFPreviewer:
|
||||||
self.confirm_and_next_page(keep="right")
|
self.confirm_and_next_page(keep="right")
|
||||||
def discard_page(self, event=None):
|
def discard_page(self, event=None):
|
||||||
self.confirm_and_next_page(keep="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):
|
def send_page_end(self, event=None):
|
||||||
# Do nothing if we are already at or past the last page
|
# Do nothing if we are already at or past the last page
|
||||||
if self.current_page_index >= len(self.doc) - 1:
|
if self.current_page_index >= len(self.doc) - 1:
|
||||||
|
|
@ -361,7 +364,7 @@ class PDFPreviewer:
|
||||||
self.setup_next_file()
|
self.setup_next_file()
|
||||||
self._initialize_current_page_settings()
|
self._initialize_current_page_settings()
|
||||||
self.load_page()
|
self.load_page()
|
||||||
|
|
||||||
def split_filename_left(self, i):
|
def split_filename_left(self, i):
|
||||||
return os.path.join(self.split_dir, f"{self.base_name}_{i+1}l.pdf")
|
return os.path.join(self.split_dir, f"{self.base_name}_{i+1}l.pdf")
|
||||||
def split_filename_right(self, i):
|
def split_filename_right(self, i):
|
||||||
|
|
@ -396,6 +399,17 @@ class PDFPreviewer:
|
||||||
rotation = (page.rotation + rotation_settings +
|
rotation = (page.rotation + rotation_settings +
|
||||||
self.file_rotation + self.global_rotation) % 360
|
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 ---
|
# --- Create Left Part ---
|
||||||
if rotation == 0:
|
if rotation == 0:
|
||||||
rect_left = fitz.Rect(0, 0, line_x, page.rect.height)
|
rect_left = fitz.Rect(0, 0, line_x, page.rect.height)
|
||||||
|
|
@ -454,7 +468,7 @@ class PDFPreviewer:
|
||||||
i += 2
|
i += 2
|
||||||
else:
|
else:
|
||||||
psk = ps[i]['keep']
|
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))
|
shutil.copy2(self.split_filename_left(i), self.reorder_filename(ri))
|
||||||
ri += 1
|
ri += 1
|
||||||
if psk == "right" or psk == "both":
|
if psk == "right" or psk == "both":
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue