Автоматизируйте проверки различий PDF с помощью Python (без ручной вычитки)
В сценариях, связанных с версионным контролем документов, проверкой контрактов и вычиткой отчетов, часто требуется точно выявлять различия между двумя файлами PDF. Традиционное ручное сравнение страниц по одной неэффективно и легко пропускает изменения. В этой статье описано, как использовать библиотеку Spire.PDF для Python для автоматизации сравнения PDF-документов с помощью программирования.
Установите нужную библиотеку
Сначала установите библиотеку Spire.PDF через pip:
pip install Spire.PDF
Эта библиотека обеспечивает полноценную обработку PDF. Класс PdfComparer специально предназначен для сравнения документов. Обратите внимание: это коммерческий продукт, но он предоставляет бесплатную версию с базовой функциональностью, чтобы разработчики могли оценить её возможности.
Полное сравнение документов
Когда нужно сравнить все содержимое двух PDF-документов, можно использовать следующий подход:
from spire.pdf.common import *
from spire.pdf import *
# Загрузка первого документа
doc_one = PdfDocument("PDF_ONE.pdf")
# Загрузка второго документа
doc_two = PdfDocument("PDF_TWO.pdf")
# Создание объекта PdfComparer: doc_two — базовая версия, doc_one — целевая версия
comparer = PdfComparer(doc_two, doc_one)
# Запуск сравнения и сохранение результатов в новый PDF-файл
comparer.Compare("ComparisonResults.pdf")
# Освобождение ресурсов документов
doc_one.Dispose()
doc_two.Dispose()
После выполнения кода выше программа сгенерирует отчет о различиях с именем ComparisonResults.pdf. В отчете различия между документами выделяются разными цветами, что позволяет пользователям быстро находить измененные разделы.
Объяснение параметров : В конструкторе PdfComparer первый параметр — базовая версия, а второй — версия, которую нужно сравнить. Выходной отчет о различиях аннотируется базовой версией в качестве ссылки.
Сравнение отдельных страниц
В реальных приложениях пользователям может быть важно только сравнение определенных страниц документов. Следующий код показывает, как ограничить сравнение заданным диапазоном страниц:
from spire.pdf.common import *
from spire.pdf import *
# Загрузка двух PDF-документов
doc_one = PdfDocument("PDF_ONE.pdf")
doc_two = PdfDocument("PDF_TWO.pdf")
# Создание экземпляра PdfComparer
comparer = PdfComparer(doc_two, doc_one)
# Установка диапазонов страниц: сравниваем страницы 1–3 первого документа
# со страницами 1–3 второго документа
comparer.PdfCompareOptions.SetPageRanges(1, 3, 1, 3)
# Выполнение сравнения для указанного диапазона
comparer.Compare("ComparePageRanges.pdf")
# Освобождение ресурсов
doc_one.Dispose()
doc_two.Dispose()
SetPageRanges(start1, end1, start2, end2) использует первые два параметра, чтобы указать номера начальной и конечной страниц базового документа, а последние два — номера начальной и конечной страниц документа, который нужно сравнить. Этот метод поддерживает случаи, когда диапазоны страниц с обеих сторон не совпадают; система будет строго сравнивать страницы в соответствии с заданными вами диапазонами, постранично.
Как читать отчет о различиях
Сгенерированный PDF с результатами сравнения использует следующие правила разметки:
- Желтое выделение : указывает на вновь добавленное содержимое
- Красное выделение : указывает на удаленное содержимое
Используя режим просмотра «бок о бок», пользователи могут четко определить точные различия между двумя версиями.
Типичные сценарии использования
- Проверка юридических контрактов : быстро выявлять изменения в положениях контракта
- Выявление ошибок в научной статье : находить текстовые изменения между разными версиями
- Управление версиями технической документации : отслеживать изменения в обновлениях руководств к продуктам
- Сверка финансовой отчетности : проверять числовые изменения в отчетных данных
Примечания
- Бесплатная версия имеет ограничение по страницам (обычно первые 10 страниц). Полная функциональность требует коммерческой лицензии.
- Эта функция сравнения работает для PDF-документов с текстом. Если PDF хранятся как изображения (отсканированные документы), результаты сравнения могут быть ограничены.
- После завершения сравнения обязательно вызовите Dispose(), чтобы освободить объекты документов и системные ресурсы, предотвращая утечки памяти.
Итог
Spire.PDF для Python предоставляет простой, но мощный способ сравнивать PDF-документы. С помощью небольшого объема кода разработчики могут автоматизировать анализ различий. Независимо от того, сравниваете ли вы целый документ или только определенные страницы, эта библиотека эффективно повышает качество и ускоряет процесс проверки документов в рабочих процессах.