import os
from PIL import Image # type: ignore
from reportlab.lib.pagesizes import letter # type: ignore
from reportlab.pdfgen import canvas # type: ignore

# Directorio de uploads
UPLOAD_DIR = 'uploads/'

# Ruta para el archivo PDF generado
PDF_FILE_PATH = 'generated_files/document.pdf'

def ensure_directory(directory):
    if not os.path.exists(directory):
        os.makedirs(directory)

def process_files(file_paths):
    ensure_directory(os.path.dirname(PDF_FILE_PATH))
    
    # Crear un nuevo PDF
    c = canvas.Canvas(PDF_FILE_PATH, pagesize=letter)
    width, height = letter

    for file_path in file_paths:
        # Mostrar información sobre el archivo
        print(f"Nombre del archivo: {os.path.basename(file_path)}")
        print(f"Ruta del archivo: {file_path}")

        if file_path.lower().endswith(('.png', '.jpg', '.jpeg')):
            # Manejar imágenes
            with Image.open(file_path) as img:
                img_width, img_height = img.size
                print(f"Dimensiones de la imagen: {img_width}x{img_height}")

                # Añadir imagen al PDF
                img_width_pt = img_width * 0.75  # Convertir píxeles a puntos (1 punto = 0.75 píxeles)
                img_height_pt = img_height * 0.75
                c.drawImage(file_path, 10, height - img_height_pt - 10, img_width_pt, img_height_pt)
                c.showPage()  # Añadir nueva página para la siguiente imagen
        else:
            print(f"Tipo de archivo no soportado: {file_path}")

    c.save()
    print(f"PDF generado exitosamente en: {PDF_FILE_PATH}")

if __name__ == "__main__":
    # Aquí puedes reemplazar con las rutas de tus archivos subidos
    file_paths = [
        'path_to_image1.jpg',
        'path_to_image2.png',
        # Añadir más archivos aquí
    ]
    process_files(file_paths)
