Miscs
This commit is contained in:
+65
-19
@@ -15,7 +15,8 @@ from pypdf import PdfReader, PdfWriter
|
||||
CM_TO_POINTS = (1 / 2.54) * 72
|
||||
|
||||
def list_pdf_files(directory):
|
||||
return list(reversed(sorted(glob.glob(os.path.join(directory, "*.pdf")))))
|
||||
l = list(reversed(sorted(glob.glob(os.path.join(directory, "*.pdf")))))
|
||||
return [u for u in l if "enonce" not in u]
|
||||
|
||||
class PDFPreviewer:
|
||||
|
||||
@@ -84,7 +85,10 @@ class PDFPreviewer:
|
||||
self.num = 0
|
||||
self.global_rotation = 0 # Rotation appliquée à tous les fichiers
|
||||
self.history = []
|
||||
self.setup_next_file()
|
||||
if not self.setup_next_file():
|
||||
print(f"Aucun fichier PDF valide trouvé dans : {path}")
|
||||
master.destroy()
|
||||
return
|
||||
|
||||
self._resize_job = None # For debouncing resize events
|
||||
|
||||
@@ -462,30 +466,72 @@ class PDFPreviewer:
|
||||
ri = 0
|
||||
i = 0
|
||||
while i < len(ps):
|
||||
# Si c'est une copie double
|
||||
if (ps[i]['keep'] == "both" or ps[i]['keep'] == "right") \
|
||||
and i < len(ps)-1 and (ps[i+1]['keep'] != "right"):
|
||||
shutil.copy2(self.split_filename_right(i), self.reorder_filename(ri))
|
||||
ri += 1
|
||||
if ps[i+1]['keep'] != "none":
|
||||
psk = ps[i]['keep']
|
||||
|
||||
# Si c'est une copie double (on s'assure qu'on a bien 2 pages consécutives modifiables)
|
||||
if psk in ["both", "right", "left", "none"] and i < len(ps)-1 and ps[i+1]['keep'] in ["both", "right", "left", "none"]:
|
||||
|
||||
# 1. Page de garde (Extérieur Droit)
|
||||
if ps[i]['keep'] in ["both", "right"]:
|
||||
shutil.copy2(self.split_filename_right(i), self.reorder_filename(ri))
|
||||
ri += 1
|
||||
|
||||
# 2. Intérieur Gauche
|
||||
if ps[i+1]['keep'] in ["both", "left"]:
|
||||
shutil.copy2(self.split_filename_left(i+1), self.reorder_filename(ri))
|
||||
ri += 1
|
||||
if ps[i+1]['keep'] != "left":
|
||||
shutil.copy2(self.split_filename_right(i+1), self.reorder_filename(ri))
|
||||
ri += 1
|
||||
if ps[i]['keep'] == "both":
|
||||
shutil.copy2(self.split_filename_left(i), self.reorder_filename(ri))
|
||||
ri += 1
|
||||
i += 2
|
||||
else:
|
||||
psk = ps[i]['keep']
|
||||
if psk == "left" or psk == "both" or psk == "as_is":
|
||||
|
||||
# 3. Intérieur Droit
|
||||
if ps[i+1]['keep'] in ["both", "right"]:
|
||||
shutil.copy2(self.split_filename_right(i+1), self.reorder_filename(ri))
|
||||
ri += 1
|
||||
|
||||
# 4. Dos de la copie (Extérieur Gauche)
|
||||
if ps[i]['keep'] in ["both", "left"]:
|
||||
shutil.copy2(self.split_filename_left(i), self.reorder_filename(ri))
|
||||
ri += 1
|
||||
if psk == "right" or psk == "both":
|
||||
|
||||
i += 2
|
||||
else:
|
||||
# Si c'est une page simple (ou as_is)
|
||||
if psk in ["left", "both", "as_is"]:
|
||||
shutil.copy2(self.split_filename_left(i), self.reorder_filename(ri))
|
||||
ri += 1
|
||||
if psk in ["right", "both"]:
|
||||
shutil.copy2(self.split_filename_right(i), self.reorder_filename(ri))
|
||||
ri += 1
|
||||
i += 1
|
||||
# def reorder_pdfs(self):
|
||||
# """Reordonne les pages, si ce sont des copies doubles."""
|
||||
# self.clean_up_dir(self.reorder_dir)
|
||||
# ps = self.page_settings
|
||||
# ri = 0
|
||||
# i = 0
|
||||
# while i < len(ps):
|
||||
# # Si c'est une copie double
|
||||
# if (ps[i]['keep'] == "both" or ps[i]['keep'] == "right") \
|
||||
# and i < len(ps)-1 and (ps[i+1]['keep'] != "right"):
|
||||
# shutil.copy2(self.split_filename_right(i), self.reorder_filename(ri))
|
||||
# ri += 1
|
||||
# if ps[i+1]['keep'] != "none":
|
||||
# shutil.copy2(self.split_filename_left(i+1), self.reorder_filename(ri))
|
||||
# ri += 1
|
||||
# if ps[i+1]['keep'] != "left":
|
||||
# shutil.copy2(self.split_filename_right(i+1), self.reorder_filename(ri))
|
||||
# ri += 1
|
||||
# if ps[i]['keep'] == "both":
|
||||
# shutil.copy2(self.split_filename_left(i), self.reorder_filename(ri))
|
||||
# ri += 1
|
||||
# i += 2
|
||||
# else:
|
||||
# psk = ps[i]['keep']
|
||||
# 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":
|
||||
# shutil.copy2(self.split_filename_right(i), self.reorder_filename(ri))
|
||||
# ri += 1
|
||||
# i += 1
|
||||
|
||||
def concate_files(self):
|
||||
writer = PdfWriter()
|
||||
|
||||
Reference in New Issue
Block a user