Команды бота

    Редактирование файла

    Создать автоматизацию

    Создать правило автоотправки

    Переслать сообщение в...

    • Загрузка списка групп...

    PDFeditor

    PDFeditor — Редактор и компрессор PDF

    📋 Описание проекта

    PDFeditor — это мощное приложение с графическим интерфейсом для сжатия PDF-документов. Программа позволяет значительно уменьшить размер PDF-файлов с минимальными потерями качества, поддерживает пакетную обработку и drag-and-drop интерфейс.

    ✨ Основной функционал

    1. Интенсивное сжатие PDF

    • Двухуровневая система сжатия (pypdfium2 + pypdf)
    • Конвертация страниц в изображения с оптимальным качеством
    • Сжатие потоков контента
    • Значительное уменьшение размера файла (до 50-80%)

    2. Пакетная обработка

    • Добавление множества файлов одновременно
    • Обработка всех файлов одной кнопкой
    • Отображение прогресса для каждого файла
    • Автоматическое сохранение с суффиксом "(сжато)"

    3. Drag and Drop

    • Перетаскивание файлов в окно программы
    • Автоматическое добавление в список
    • Фильтрация только PDF файлов
    • Визуальная индикация области перетаскивания

    4. Управление списком

    • Добавление файлов через диалог выбора
    • Удаление отдельных файлов из списка
    • Очистка всего списка
    • Предварительный просмотр списка перед обработкой

    5. Визуальные индикаторы

    • Эмодзи-статусы для каждого файла
    • Прогресс обработки в реальном времени
    • Информация о завершении работы
    • Отчет об успешно обработанных файлах

    🚀 Установка и запуск

    🎯 Быстрый старт (Windows)

    Проект имеет автоматизированную систему развертывания:

    1. Установка (один раз):

    setup.bat
    

    Скрипт автоматически:

    • Проверит наличие Python 3.8+
    • Создаст виртуальное окружение
    • Установит все зависимости

    2. Запуск:

    run.bat
    

    💡 Подсказка: Просто дважды кликните на setup.bat для первичной установки, затем используйте run.bat для запуска.


    Требования

    • Python 3.8 или выше (указано в runtime.txt)
    • Windows / Linux / macOS

    Установка зависимостей (альтернативный способ)

    1. Убедитесь, что Python установлен на вашем компьютере
    2. Откройте командную строку (терминал) в папке проекта
    3. Установите необходимые библиотеки:
    pip install -r requirements.txt
    

    Файл requirements.txt содержит все необходимые зависимости:

    • pypdf — базовая библиотека для работы с PDF
    • tkinterdnd2 — поддержка drag-and-drop
    • pillow — обработка изображений
    • pypdfium2 — продвинутое сжатие PDF

    Запуск программы

    python pdf_editor.py
    

    📖 Инструкция по использованию

    Способ 1: Drag and Drop (перетаскивание)

    1. Запустите программу
    2. Перетащите PDF файлы в серую область с надписью "Перетащите PDF файлы сюда…"
    3. Файлы автоматически добавятся в список
    4. Нажмите кнопку "Сжать PDF"

    Способ 2: Выбор через диалог

    1. Нажмите кнопку "Выбрать файлы"
    2. В открывшемся диалоге выберите один или несколько PDF файлов
    3. Нажмите "Открыть"
    4. Файлы добавятся в список
    5. Нажмите кнопку "Сжать PDF"

    Управление списком

    • Удалить файл: Выберите файл в списке и нажмите "Удалить выбранный"
    • Очистить список: Нажмите "Очистить список" для удаления всех файлов

    Процесс сжатия

    1. Кнопка "Сжать PDF" изменится на "Обработка…"
    2. Каждый файл получит статус:
      • Ожидает — файл в очереди
      • 🔄 Обработка — файл сжимается
      • Готово — файл успешно сжат
      • Ошибка — произошла ошибка
    3. По завершении появится окно с итоговой статистикой

    Сохранение результатов

    Сжатые файлы сохраняются автоматически в той же папке, где находится оригинал, с суффиксом "(сжато)":

    Оригинал: Документ.pdf
    Результат: Документ (сжато).pdf
    

    📁 Структура проекта

    PDFeditor/
    ├── pdf_editor.py          # Основной исполняемый файл
    ├── requirements.txt       # Список зависимостей
    └── README.md             # Данная документация
    

    ⚙️ Технические детали компрессии

    Метод 1: pypdfium2 (основной)

    • Рендеринг каждой страницы в изображение (масштаб 1.5x)
    • Конвертация в RGB формат
    • Оптимизация изображения
    • Создание нового PDF из оптимизированных изображений
    • Преимущество: Максимальное сжатие (до 80%)

    Метод 2: pypdf (резервный)

    • Сжатие потоков контента
    • Оптимизация структуры PDF
    • Сохранение метаданных
    • Преимущество: Быстрая обработка, сохранение качества текста

    Автоматический выбор метода

    Программа автоматически выбирает лучший доступный метод:

    1. Пробует pypdfium2 (если установлен)
    2. При ошибке переключается на pypdf
    3. Логирует использованный метод в консоль

    🔧 Технические характеристики

    • Язык программирования: Python 3
    • Библиотека GUI: Tkinter + TkinterDnD
    • Обработка PDF: pypdf + pypdfium2
    • Обработка изображений: Pillow (PIL)
    • Многопоточность: Обработка в отдельном потоке (GUI не зависает)

    📊 Статусы файлов

    Эмодзи Статус Описание
    📄 Без статуса Файл только добавлен
    Ожидает Файл в очереди на обработку
    🔄 Обработка Файл сжимается
    Готово Файл успешно сжат
    Ошибка Произошла ошибка при сжатии

    ⚠️ Возможные проблемы и решения

    Проблема: Ошибка "ModuleNotFoundError: No module named 'tkinterdnd2'"
    Решение: Установите зависимости: pip install -r requirements.txt

    Проблема: Ошибка при сжатии: "pypdfium2 не найден"
    Решение:

    pip install pypdfium2
    

    Или программа автоматически переключится на резервный метод

    Проблема: Результат сжатия незначительный
    Решение:

    • PDF уже был сжат
    • Файл содержит только текст (минимальное сжатие)
    • Используйте pypdfium2 для лучшего результата

    Проблема: Долгая обработка больших файлов
    Решение:

    • Метод pypdfium2 медленнее, но эффективнее
    • Для больших файлов (>100 страниц) требуется несколько минут
    • Не закрывайте программу во время обработки

    Проблема: Ошибка "Permission denied"
    Решение:

    • Закройте файл в других программах
    • Проверьте права на запись в папке
    • Запустите программу от имени администратора

    💡 Советы по использованию

    1. Пакетная обработка: Добавьте сразу все файлы для одновременной обработки

    2. Качество сжатия: pypdfium2 дает лучшее сжатие, но медленнее

    3. Резервные копии: Программа не удаляет оригиналы, но всё равно делайте резервные копии важных документов

    4. Проверка результата: Всегда проверяйте сжатый PDF перед удалением оригинала

    5. Текстовые PDF: Для PDF с текстом сжатие будет меньше, чем для PDF со сканами

    📈 Примеры сжатия

    Тип документа Оригинал Сжато Процент
    Сканы (изображения) 50 MB 8 MB -84%
    Текст + изображения 20 MB 6 MB -70%
    Только текст 5 MB 3 MB -40%
    Презентация 100 MB 25 MB -75%

    Результаты зависят от содержимого и исходного сжатия

    🎯 Варианты использования

    Пример 1: Сжатие сканов документов

    Входные файлы: Паспорт.pdf, Диплом.pdf, Справка.pdf
    Результат: Все файлы уменьшены до 10-20% от оригинала
    

    Пример 2: Подготовка к отправке по email

    Проблема: Файл 30 MB не принимается почтовым сервером
    Решение: Сжатие до 5-8 MB
    

    Пример 3: Архивация документов

    Задача: Уменьшить объем архива с 500 MB до 100 MB
    Действие: Пакетная обработка всех PDF
    

    🔐 Безопасность

    • Программа работает только локально
    • Файлы не отправляются в интернет
    • Оригиналы не изменяются
    • Создаются новые файлы с суффиксом "(сжато)"

    📄 Лицензия

    Этот проект создан для личного использования.

    👤 Автор

    Разработано для эффективного сжатия PDF-документов

    🛠️ Планы развития

    • Настройка уровня сжатия
    • Поддержка OCR для сканов
    • Объединение нескольких PDF
    • Разделение PDF на страницы
    • Водяные знаки
    • Защита паролем

    🙏 Благодарности

    • pypdf — за базовую работу с PDF
    • pypdfium2 — за мощное сжатие
    • TkinterDnD — за drag-and-drop функциональность

    Edit Message

    Attachments:

    AI Assistant

    Enter your instruction to edit the text: