38 lines
		
	
	
	
		
			916 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			38 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])
 |