#!/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)