Files
Jules e3dfd90933 Initial commit — Copydev Imposing Tool
Outil d'imposition PDF desktop (PyQt6) remplacant Quite Imposing Plus.
9 fonctions : livret, n-up, step & repeat, imposition manuelle,
jointure pages, pages blanches, numerotation, masquage, fonds perdus.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 10:54:02 +01:00

37 lines
1.0 KiB
Python

"""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