Загрузка данных


"""
Склейка скриншотов страниц учебника в один PDF-файл.

ПОДГОТОВКА:
1. Установи библиотеку Pillow (один раз):
   pip install Pillow

2. Сложи все скриншоты в одну папку.
   Переименуй их по порядку страниц, ОБЯЗАТЕЛЬНО с ведущими нулями:
   001.png, 002.png, 003.png, ... 045.png
   (без нулей "2.png" встанет после "10.png" при сортировке)

3. Ниже в разделе НАСТРОЙКИ укажи:
   - путь к папке со скриншотами (INPUT_FOLDER)
   - путь и имя итогового PDF (OUTPUT_PDF)
   - при необходимости — обрезку полей (CROP_BOX)

4. Запусти скрипт:
   python screenshots_to_pdf.py
"""

from pathlib import Path
from PIL import Image

# ================== НАСТРОЙКИ ==================

# Папка, куда ты сложил скриншоты
INPUT_FOLDER = r"C:\Users\ИМЯ\Desktop\Тетрадь"

# Куда сохранить итоговый PDF
OUTPUT_PDF = r"C:\Users\ИМЯ\Desktop\Тетрадь\tetrad.pdf"

# Нужно ли обрезать одинаковые поля у ВСЕХ картинок (например, убрать
# полоску браузера сверху или боковую панель читалки).
# Если обрезка не нужна — оставь None.
# Если нужна — впиши координаты в пикселях: (слева, сверху, справа, снизу)
# Проще всего открыть один скриншот в Paint/любом просмотрщике,
# навести курсор на нужные углы области и посмотреть координаты.
CROP_BOX = None  # например: (0, 80, 1920, 1040)

# Разрешённые расширения файлов-скриншотов
EXTENSIONS = {".png", ".jpg", ".jpeg"}

# =================================================


def main():
    folder = Path(INPUT_FOLDER)
    if not folder.exists():
        print(f"Папка не найдена: {folder}")
        return

    files = sorted(
        [f for f in folder.iterdir() if f.suffix.lower() in EXTENSIONS]
    )

    if not files:
        print("В папке не найдено ни одного изображения (png/jpg).")
        return

    print(f"Найдено файлов: {len(files)}")
    for f in files:
        print("  ", f.name)

    images = []
    for f in files:
        img = Image.open(f).convert("RGB")
        if CROP_BOX is not None:
            img = img.crop(CROP_BOX)
        images.append(img)

    first, rest = images[0], images[1:]

    Path(OUTPUT_PDF).parent.mkdir(parents=True, exist_ok=True)
    first.save(OUTPUT_PDF, save_all=True, append_images=rest)

    print(f"\nГотово! PDF сохранён: {OUTPUT_PDF}")
    print(f"Страниц в PDF: {len(images)}")


if __name__ == "__main__":
    main()