Add support for cutting guides

This commit is contained in:
Selene Corbineau 2026-05-29 18:42:41 +02:00
parent e1290687a4
commit 0731eef783

View file

@ -2,6 +2,8 @@
import argparse import argparse
from pypdf import PaperSize, PdfReader, PdfWriter, Transformation from pypdf import PaperSize, PdfReader, PdfWriter, Transformation
from pypdf.annotations import Line
from pypdf.generic import ArrayObject, FloatObject, NameObject
import math import math
# Interprets input_pdf as a list of A6 pages, and appends to append_to with # Interprets input_pdf as a list of A6 pages, and appends to append_to with
@ -50,6 +52,14 @@ def blit_to_A4(input_pdf, append_to=PdfWriter()):
height=PaperSize.A4.height) height=PaperSize.A4.height)
back_page = writer.add_blank_page(width=PaperSize.A4.width, back_page = writer.add_blank_page(width=PaperSize.A4.width,
height=PaperSize.A4.height) height=PaperSize.A4.height)
midline = Line(rect = (0, PaperSize.A4.height/2, PaperSize.A4.width, PaperSize.A4.height/2),
p1=(10, PaperSize.A4.height/2),
p2=(PaperSize.A4.width-10, PaperSize.A4.height/2))
midline.flags = 4 # print the midline
midline[NameObject("/C")] = ArrayObject([FloatObject(0.5)])
writer.add_annotation(front_page, midline)
front = input_pdf.pages[k] front = input_pdf.pages[k]
back = input_pdf.pages[k+1] if (k+1<L) else create_blank_page(None, PaperSize.A5.width, PaperSize.A5.height) back = input_pdf.pages[k+1] if (k+1<L) else create_blank_page(None, PaperSize.A5.width, PaperSize.A5.height)