Команды бота

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

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

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

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: