|
|
- import argparse
- import os
- import subprocess
-
- try:
- from PyPDF2 import PdfFileMerger
-
- MERGE = True
- except ImportError:
- print("Could not find PyPDF2. Leaving pdf files unmerged.")
- MERGE = False
-
-
- def main(files):
- os_args = [
- "jupyter",
- "nbconvert",
- "--log-level",
- "CRITICAL",
- "--to",
- "pdf",
- ]
- for f in files:
- os_args.append(f)
- subprocess.run(os_args)
- print("Created PDF {}.".format(f))
- if MERGE:
- pdfs = [f.split(".")[0] + ".pdf" for f in files]
- merger = PdfFileMerger(strict=True)
- for pdf in pdfs:
- merger.append(pdf)
- merger.write("assignment.pdf")
- merger.close()
- for pdf in pdfs:
- os.remove(pdf)
-
-
- if __name__ == "__main__":
- parser = argparse.ArgumentParser()
- # we pass in explicit notebook arg so that we can provide
- # an ordered list and produce an ordered pdf
- parser.add_argument("--notebooks", type=str, nargs="+", required=True)
- args = parser.parse_args()
- main(args.notebooks)
|