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>
This commit is contained in:
36
app/engine/bleeds.py
Normal file
36
app/engine/bleeds.py
Normal file
@@ -0,0 +1,36 @@
|
||||
"""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
|
||||
Reference in New Issue
Block a user