import argparse import fitz def extract_pages(input_pdf_path, output_pdf_path, start, end): doc = fitz.open(input_pdf_path) doc2 = fitz.open() doc2.insert_pdf(doc, from_page=start-1, to_page=end-1) # pages 0 to 9 (10 pages total) doc2.save(output_pdf_path, garbage=4, deflate=True, deflate_images=True, deflate_fonts=True) doc2.close() if __name__ == "__main__": parser = argparse.ArgumentParser(description="Extracts pages from a PDF") parser.add_argument("input_pdf", help="Path to the source PDF file.") parser.add_argument("output_pdf", help="Path to the destination PDF file.") parser.add_argument("start", help="Page number of first page to extract", type=int) parser.add_argument("end", help="Page number of last page to extract", type=int) args = parser.parse_args() extract_pages(args.input_pdf, args.output_pdf, args.start, args.end)