bmbf/interleave.py

39 lines
916 B
Python
Raw Permalink Normal View History

2024-10-30 08:42:36 +01:00
#!/usr/bin/env python3
import os
import sys
from pdfrw import PdfReader, PdfWriter
def main(input_files, output_file):
cwd = os.getcwd()
all_pdf_pages = {}
lengths = []
print(f'loading input files: {input_files}')
for pdf_filename in input_files:
reader = PdfReader(os.path.join(cwd, pdf_filename))
all_pdf_pages[pdf_filename] = reader.pages
lengths.append(len(reader.pages))
assert all([x == lengths[0] for x in lengths])
interleaved_pdf = PdfWriter()
for i in range(lengths[0]):
for pdf in all_pdf_pages.values():
interleaved_pdf.addpage(pdf[i])
interleaved_pdf.write(os.path.join(cwd, output_file))
def usage():
print('Usage: interleave.py output.pdf input1.pdf input2.pdf [input3.pdf ...]')
if __name__ == '__main__':
if len(sys.argv) < 4:
usage()
sys.exit(1)
main(sys.argv[2:], sys.argv[1])