From bfbc4b9eaee2ebb983bd878c7c67deacc52506c9 Mon Sep 17 00:00:00 2001 From: SuperUser Date: Fri, 27 Feb 2026 13:08:33 +0000 Subject: [PATCH] Add script to convert PDF pages to PNG images --- shared/pdf/scripts/convert_pdf_to_images.py | 33 +++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 shared/pdf/scripts/convert_pdf_to_images.py diff --git a/shared/pdf/scripts/convert_pdf_to_images.py b/shared/pdf/scripts/convert_pdf_to_images.py new file mode 100644 index 0000000..7939cef --- /dev/null +++ b/shared/pdf/scripts/convert_pdf_to_images.py @@ -0,0 +1,33 @@ +import os +import sys + +from pdf2image import convert_from_path + + + + +def convert(pdf_path, output_dir, max_dim=1000): + images = convert_from_path(pdf_path, dpi=200) + + for i, image in enumerate(images): + width, height = image.size + if width > max_dim or height > max_dim: + scale_factor = min(max_dim / width, max_dim / height) + new_width = int(width * scale_factor) + new_height = int(height * scale_factor) + image = image.resize((new_width, new_height)) + + image_path = os.path.join(output_dir, f"page_{i+1}.png") + image.save(image_path) + print(f"Saved page {i+1} as {image_path} (size: {image.size})") + + print(f"Converted {len(images)} pages to PNG images") + + +if __name__ == "__main__": + if len(sys.argv) != 3: + print("Usage: convert_pdf_to_images.py [input pdf] [output directory]") + sys.exit(1) + pdf_path = sys.argv[1] + output_directory = sys.argv[2] + convert(pdf_path, output_directory)