Manual tweak.
[dcpomatic.git] / doc / manual / pdf_crop_by.py
1 import shlex
2 import subprocess
3 import sys
4
5 if len(sys.argv) != 7:
6     print("Syntax: %s <in-pdf> <out-pdf> <left> <bottom> <right> <top>" % sys.argv[0])
7     sys.exit(1)
8
9 in_pdf = sys.argv[1]
10 out_pdf = sys.argv[2]
11
12 cp = subprocess.run(shlex.split('gs -dNOPAUSE -dBATCH -sDEVICE=bbox %s' % in_pdf), capture_output=True)
13 if cp.returncode != 0:
14     print("gs call failed", file=sys.stderr)
15     sys.exit(1)
16 for line in cp.stderr.splitlines():
17     print(line)
18     if line.startswith(b"%%BoundingBox"):
19         old_bbox = line.split()[1:]
20         new_bbox = []
21         for i in range(0, 2):
22             new_bbox.append(int(old_bbox[i]) + int(sys.argv[i+3]))
23         for i in range(2, 4):
24             new_bbox.append(int(old_bbox[i]) - int(sys.argv[i+3]))
25         print(new_bbox)
26         cp = subprocess.run(shlex.split('pdfcrop --bbox "%d %d %d %d" %s %s' % (new_bbox[0], new_bbox[1], new_bbox[2], new_bbox[3], in_pdf, out_pdf)))
27