Skip to content

mikhalchankasm/AutoPDFCompare

Repository files navigation

PDFCompare Local

Локальное сравнение двух ревизий PDF (чертежи, схемы, спецификации) с наглядным HTML-отчётом. Windows, без облака — файлы не покидают ваш компьютер.

Current release: v0.1.13

Download Installer Download Windows EXE Download portable ZIP Latest Release

Add to Cursor Install in VS Code

Возможности

  • Визуальный HTML-отчёт — матрица изменений по всем листам, постраничный просмотр OLD / NEW / DIFF и слайдер-сравнение со шторкой.
  • Метрики для чертежей — процент изменений от нарисованного контента (FG %), площадь изменений в мм², число зон; классификация «мелкие / средние / крупные».
  • Сопоставление листов между ревизиями: добавленные, удалённые и изменённые листы находятся даже при сдвиге нумерации.
  • Исключаемые зоны — штампы, рамки и подписи можно вырезать из сравнения: визуальным редактором (мм-сетка, форматы A4–A0, привязка к углам) или текстом в поле.
  • Перегенерация — пересчёт отдельных листов с другим DPI / строгостью без полного повторного прогона.
  • MCP-сервер для AI-агентов (Cursor, Claude Code, VS Code) — те же операции через инструменты агента.
  • Автообновление — приложение само находит новый релиз, скачивает инсталлятор и обновляется.

Установка

Вариант Кому подходит
Инсталлятор — рекомендуется Ставится в профиль пользователя (без прав администратора), создаёт ярлыки, удаляется штатно, обновляется в один клик из самого приложения
Portable EXE Один файл без установки; для обновления скачайте новый EXE
Portable ZIP + Python 3.12 Запуск из исходников: scripts/setup.ps1, затем scripts/run.ps1

Python для инсталлятора и EXE не нужен.

Быстрый старт

  1. Перетащите два PDF прямо в окно (или выберите кнопками): старая ревизия — слева, новая — справа.
  2. Если на листах есть штамп или рамка, которые не нужно сравнивать, — «Исключить области» → «Выбрать…» и обведите зону на превью.
  3. Нажмите «Сравнить» (или Enter) и откройте готовый HTML-отчёт.

Интерфейс

Главное окно PDFCompare Local

Зона Что делает
1 Карточки файлов Старая и новая ревизии PDF; кнопка между карточками меняет их местами
2 Зона перетаскивания Бросьте два PDF сразу — они автоматически разложатся в «Старый» и «Новый»
3 Папка вывода и имя отчёта Куда сложить результат; пустое имя — авто-имя по дате и времени
4 Точность DPI рендера (выше — точнее, но медленнее) и допуск штриха в px (гасит шум тонких линий и сглаживания)
5 Строгость strict ловит больше мелких отличий, loose игнорирует мелкий дребезг, normal — баланс
6 Исключаемые зоны Текстовое поле + кнопка визуального редактора зон (см. раздел ниже)
7 Эксперименты Объединение соседних рамок изменений (gap в мм) и сохранение отладочных изображений
8 Запуск и действия «Сравнить», подстановка из истории, открытие отчёта/папки; ниже — статус, таймер и прогресс
9 Вкладки «История» запусков и «Перегенерация» отдельных листов с новыми настройками
10 Язык и обновления Переключатель RU/EN и ручная проверка обновлений (↻)

Исключаемые зоны (штампы, рамки, подписи)

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

Кнопка «Выбрать…» открывает превью листа:

  • миллиметровая сетка с шагом 5–50 мм и автоопределение формата листа (A4–A0, с ручным переопределением для сканов);
  • рисование зоны рамкой с живой подписью размера в мм; готовые зоны можно двигать, растягивать за 8 маркеров и удалять (Del);
  • у каждой зоны есть якорь ↖/↗/↙/↘ — отступы считаются от выбранного угла листа. Зона штампа с якорем ↘ (низ-право) остаётся на месте и на A4, и на A0;
  • существующие значения поля открываются как редактируемые рамки; для многостраничных PDF есть переключатель страницы.

Текстом в поле

Формат Пример Когда удобно
Проценты x,y,w,h через ; 70,80,30,20 Быстрая зона от верхнего-левого угла
JSON: мм + якорь [{"x":10,"y":10,"w":185,"h":55,"unit":"mm","anchor":"bottom_right"}] Штамп 185×55 мм в 10 мм от правого-нижнего угла — работает на любом формате листа
JSON: проценты [{"x":0,"y":90,"w":100,"h":10}] Нижняя полоса на всю ширину

unit: percent (по умолчанию) / mm / px. anchor: top_left (по умолчанию) / top_right / bottom_left / bottom_right. Те же форматы принимают CLI (--exclude-region) и MCP-инструменты.

Отчёт

Матрица изменений Просмотр листа Слайдер-сравнение

  • Матрица изменений — все листы с бейджами статуса и метрикой FG % (доля изменённого от нарисованного контента).
  • Просмотр листа — OLD / NEW / DIFF с подсветкой зон изменений.
  • Слайдер — шторка OLD↔NEW с пришпиленной панелью навигации по листам, масштабированием и настройкой рамок изменений.

Скриншоты показывают интерфейс; содержимое чертежей может быть размыто.

Обновления

Приложение раз в час проверяет GitHub Releases. Когда выходит новая версия, установленное через инсталлятор приложение предлагает «Скачать и установить сейчас» — скачивает инсталлятор, тихо обновляется и перезапускается само. Portable EXE открывает страницу загрузки. Кнопка ↻ в шапке — проверить вручную.

CLI

python compare_pdfs.py --old old.pdf --new new.pdf --out-dir runs --run-name My_Comparison
python compare_pdfs.py --old old.pdf --new new.pdf --exclude-region "70,80,30,20" --diff-strictness loose
python compare_pdfs.py --old old.pdf --new new.pdf --bbox-merge-gap-mm 5 --keep-debug-images

Основные флаги: --dpi, --stroke-tol, --diff-strictness (strict/normal/loose), --exclude-region (повторяемый, проценты X,Y,W,H или JSON), --bbox-merge-gap-mm / --bbox-merge-max-area-ratio (эксперимент), --keep-debug-images, --workers, --lang, --run-name.

AI Agent Setup (MCP)

Вставьте в вашего локального агента:

Прочитай https://raw.githubusercontent.com/mikhalchankasm/AutoPDFCompare/master/docs/SETUP_PROMPT.md и выполни инструкцию по подключению PDFCompare MCP. Используй stdio transport, имя сервера pdfcompare.

Обновление позже:

Обнови PDFCompare MCP по инструкции из https://raw.githubusercontent.com/mikhalchankasm/AutoPDFCompare/master/docs/SETUP_PROMPT.md

Важно: MCP-кнопки запускают локальную PowerShell-команду и код из этого репозитория. Используйте их, только если доверяете репозиторию и агенту.

Агенту доступны те же операции, что и в GUI: подготовка и запуск сравнения, статус/отмена, перегенерация листов, список прошлых прогонов и визуальный выбор исключаемых зон (pick_pdf_exclude_region). Подробности: docs/LOCAL_AGENT_MCP.md.

Документация

License

No license is declared yet.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors