Локальное сравнение двух ревизий PDF (чертежи, схемы, спецификации) с наглядным HTML-отчётом. Windows, без облака — файлы не покидают ваш компьютер.
Current release: v0.1.13
- Визуальный 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 не нужен.
- Перетащите два PDF прямо в окно (или выберите кнопками): старая ревизия — слева, новая — справа.
- Если на листах есть штамп или рамка, которые не нужно сравнивать, — «Исключить области» → «Выбрать…» и обведите зону на превью.
- Нажмите «Сравнить» (или Enter) и откройте готовый HTML-отчёт.
| № | Зона | Что делает |
|---|---|---|
| 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 открывает страницу загрузки. Кнопка ↻ в шапке — проверить вручную.
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.
Вставьте в вашего локального агента:
Прочитай 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.
- MCP: установка и инструменты — docs/LOCAL_AGENT_MCP.md
- Готовые промпты для агентов — docs/AGENT_PROMPTS.md
- Skill-гайд для агентов — docs/PDFCOMPARE_AGENT_SKILL.md
- История изменений — CHANGELOG.md
- Процесс релиза — docs/RELEASE_PROCESS.md
- Промпт для ревью репозитория — docs/REVIEW_PROMPT.md
No license is declared yet.



