39 lines
916 B
Python
39 lines
916 B
Python
|
#!/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])
|