aboutsummaryrefslogtreecommitdiff
path: root/scripts/.local/bin/personal/reMerge
blob: 654d0a3ec97cedf05935be23c9621d7d3b5473ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/env python3

# Generates a PDF file from slides for easy note taking
# David Penkowoj, 2023-04-17

import os
import sys
import getpass
import pikepdf
import subprocess

file = sys.argv[1]
filename = os.path.splitext(file)[0]
key = getpass.getpass()

width = 191
height = width / 4 * 3
tmpfile = "/tmp/reMergeScaled.pdf"
command = f"cpdf -scale-to-fit \"{width}mm {height}mm\" {file} owner={key} -o {tmpfile}"

subprocess.run(command, shell=True)

pdf = pikepdf.Pdf.open("/home/me/documents/remarkable/pdotsa4.pdf")
background = pdf.pages[0]

overlay_pdf = pikepdf.Pdf.open("/tmp/reMergeScaled.pdf")

for overlay in overlay_pdf.pages:
    pdf.pages.append(background)

    x2 = background.MediaBox[2]
    y2 = background.MediaBox[3]
    x1 = x2 - (overlay.MediaBox[2] - overlay.MediaBox[0])
    y1 = y2 - (overlay.MediaBox[3] - overlay.MediaBox[1])

    rect = pikepdf.Rectangle(x1, y1, x2, y2)

    pdf.pages[-1].add_overlay(overlay, rect, shrink=False, expand=False)

del pdf.pages[0]

pdf.save(f"{filename}_notes.pdf")
subprocess.run(f"rm -rf {tmpfile}", shell=True)