"""Moteur Definition des fonds perdus (bleeds).""" from pypdf import PdfReader, PdfWriter from .pdf_utils import get_page_size, mm_to_pt def define_bleeds(input_path, output_path, bleed_top=0, bleed_bottom=0, bleed_left=0, bleed_right=0): """Definir les zones de fond perdu en etendant le TrimBox/BleedBox. Les valeurs sont en millimetres. """ bt = mm_to_pt(bleed_top) bb = mm_to_pt(bleed_bottom) bl = mm_to_pt(bleed_left) br = mm_to_pt(bleed_right) reader = PdfReader(input_path) writer = PdfWriter() for page in reader.pages: w, h = get_page_size(page) # Le TrimBox definit la taille finale apres coupe page.trimbox.lower_left = (bl, bb) page.trimbox.upper_right = (w - br, h - bt) # Le BleedBox inclut le fond perdu page.bleedbox.lower_left = (0, 0) page.bleedbox.upper_right = (w, h) writer.add_page(page) with open(output_path, "wb") as f: writer.write(f) return output_path