crops = initial_split[0]
start_page, end_page = parse_page_range(page_range, pages_to_add)
crop_left, crop_bottom, crop_right, crop_top = [float(x) * points_per_cm for x in crops.split(',')]
- print("-c: to pages %d to %d applying crops: left %dcm, bottom %dcm, right %dcm, top %dcm" % (start_page + 1, end_page, crop_left, crop_bottom, crop_right, crop_top))
+ if args.symmetry:
+ print("-c, -t: to pages %d to %d applying crops: left %dcm, bottom %dcm, right %dcm, top %dcm (but alternating left and right crop between even and odd pages)" % (start_page + 1, end_page, crop_left, crop_bottom, crop_right, crop_top))
+ else:
+ print("-c: to pages %d to %d applying crops: left %dcm, bottom %dcm, right %dcm, top %dcm" % (start_page + 1, end_page, crop_left, crop_bottom, crop_right, crop_top))
cropped_width = a4_width - crop_left - crop_right
cropped_height = a4_height - crop_bottom - crop_top
zoom = 1
else:
zoom = max(zoom_horizontal, zoom_vertical)
for page_num in range(start_page, end_page):
- crops_at_page[page_num] = (crop_left, crop_bottom, crop_right, crop_top)
+ if args.symmetry and page_num % 2:
+ crops_at_page[page_num] = (crop_right, crop_bottom, crop_left, crop_top)
+ else:
+ crops_at_page[page_num] = (crop_left, crop_bottom, crop_right, crop_top)
zoom_at_page[page_num] = zoom
writer = pypdf.PdfWriter()
for i, page in enumerate(pages_to_add):
crop_left, crop_bottom, crop_right, crop_top = crops_at_page[i]
zoom = zoom_at_page[i]
- if args.symmetry and odd_page:
- page.add_transformation(pypdf.Transformation().translate(tx=-crop_right, ty=-crop_bottom))
- else:
- page.add_transformation(pypdf.Transformation().translate(tx=-crop_left, ty=-crop_bottom))
+ page.add_transformation(pypdf.Transformation().translate(tx=-crop_left, ty=-crop_bottom))
page.add_transformation(pypdf.Transformation().scale(zoom, zoom))
cropped_width = a4_width - crop_left - crop_right
cropped_height = a4_height - crop_bottom - crop_top
zoom = zoom_at_page[new_i]
page.add_transformation(pypdf.Transformation().translate(ty=(a4_height / zoom - (a4_height - crop_top))))
if i == 0 or i == 2:
- if args.symmetry:
- page.add_transformation(pypdf.Transformation().translate(tx=-crop_left))
- else:
- page.add_transformation(pypdf.Transformation().translate(tx=-crop_right))
+ page.add_transformation(pypdf.Transformation().translate(tx=-crop_left))
elif i == 1 or i == 3:
- if args.symmetry:
- page.add_transformation(pypdf.Transformation().translate(tx=(a4_width / zoom - (a4_width - crop_left))))
- else:
- page.add_transformation(pypdf.Transformation().translate(tx=(a4_width / zoom - (a4_width - crop_right))))
+ page.add_transformation(pypdf.Transformation().translate(tx=(a4_width / zoom - (a4_width - crop_right))))
page.add_transformation(pypdf.Transformation().scale(zoom * bonus_shrink_factor, zoom * bonus_shrink_factor))
if i == 2 or i == 3:
page.add_transformation(pypdf.Transformation().translate(ty=-2*printable_margin/printable_scale))