Сравните PDF-файлы с помощью REST API в Python

PDF(Portable Document Format) сегодня является одним из наиболее часто используемых типов файлов. Обычно используется для распространения документов только для чтения с сохранением макета страницы. В различных случаях нам может понадобиться сравнить содержимое двух или более PDF-документов или сравнить несколько версий одного и того же документа. Мы можем легко сравнивать PDF-документы программно, чтобы выявить сходства и различия. В этой статье мы узнаем, как сравнивать PDF-файлы с помощью REST API в Python.

В этой статье должны быть раскрыты следующие темы:

REST API для сравнения PDF-файлов и Python SDK

Для сравнения PDF-документов мы будем использовать Python SDK of GroupDocs.Comparison Cloud API. Он позволяет сравнивать два или более документов поддерживаемых форматов и находить различия. Пожалуйста, установите его с помощью следующей команды в консоли:

pip install groupdocs_comparison_cloud

Пожалуйста, получите свой идентификатор клиента и секрет из панели инструментов, прежде чем выполнять указанные шаги. Получив свой идентификатор и секрет, добавьте код, как показано ниже:

# В этом примере кода показано, как установить идентификатор клиента и секрет.
client_id = "659fe7da-715b-4744-a0f7-cf469a392b73"
client_secret = "b377c36cfa28fa69960ebac6b6e36421"

configuration = groupdocs_comparison_cloud.Configuration(client_id, client_secret)
configuration.api_base_url = "https://api.groupdocs.cloud"
my_storage = ""

Сравните два файла PDF с помощью REST API в Python

Мы можем сравнить PDF-документы в облаке, выполнив простые шаги, указанные ниже:

  1. Загрузить PDF-файлы в облако
  2. Сравнить PDF-файлы
  3. Скачать полученный PDF-файл

Загрузите PDF-файлы

Во-первых, мы загрузим исходный и целевой PDF-файлы в облако, используя следующий пример кода:

# В этом примере кода показано, как загружать PDF-файлы в облако.
# Создать экземпляр API
file_api = groupdocs_comparison_cloud.FileApi.from_config(configuration)

# загрузить образцы файлов
for filename in glob.iglob("C:\\Files\\*.pdf", recursive=True):
    destFile = filename.replace("C:\\Files\\", "", 1)            
    file_api.upload_file(groupdocs_comparison_cloud.UploadFileRequest(destFile, filename))
    print("Uploaded file: "+ destFile)

В результате загруженные файлы будут доступны в разделе файлов панели инструментов в облаке.

Сравните PDF-файлы с помощью Python

Мы можем программно сравнить два PDF-документа, выполнив следующие шаги:

  • Во-первых, создайте экземпляр CompareApi.
  • Затем создайте экземпляр FileInfo.
  • Затем укажите путь к исходному файлу PDF.
  • После этого создайте еще один экземпляр FileInfo.
  • Затем укажите путь к целевому файлу PDF.
  • Затем создайте экземпляр ComparisonOptions.
  • Затем назначьте исходный и целевой файлы.
  • Также укажите путь к выходному файлу.
  • После этого создайте экземпляр ComparisonsRequest с объектом ComparisonOptions.
  • Наконец, получите результаты, вызвав метод CompareApi.comparisons() с ComparisonsRequest в качестве аргумента.

В следующем примере кода показано, как сравнить два файла PDF с помощью REST API в Python.

# В этом примере кода показано, как сравнить два файла PDF.
# Создайте экземпляр API
api_instance = groupdocs_comparison_cloud.CompareApi.from_keys(client_id, client_secret)

# Входной исходный файл
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"

# Целевой файл
target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.pdf"

# Определить параметры сравнения
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]
options.output_path = "result.pdf"

# Создать запрос на сравнение
request = groupdocs_comparison_cloud.ComparisonsRequest(options)

# сравнивать
response = api_instance.comparisons(request)
Сравните два файла PDF с помощью REST API в Python

Сравните два файла PDF с помощью REST API в Python.

Полученный PDF-файл также содержит сводную страницу в конце документа, как показано ниже:

Сводная страница.

Страница сводки, показывающая общее количество удаленных или вставленных элементов.

Загрузите результирующий файл

Приведенный выше пример кода сохранит различия во вновь созданном файле PDF в облаке. Его можно скачать, используя следующий пример кода:

# В этом примере кода показано, как загрузить полученный файл.
# Создать экземпляр API
file_api = groupdocs_comparison_cloud.FileApi.from_config(configuration)

# Создать запрос на скачивание файла
request = groupdocs_comparison_cloud.DownloadFileRequest("result.pdf", my_storage)

# Загрузить файл
response = file_api.download_file(request)

# Переместите загруженный файл в свой рабочий каталог
shutil.move(response, "C:\\Files\\") 

Сравните несколько файлов PDF в Python

Мы можем сравнить несколько PDF-документов, выполнив следующие шаги:

  • Во-первых, создайте экземпляр CompareApi.
  • Затем создайте экземпляр FileInfo и укажите путь к исходному файлу PDF.
  • Затем создайте еще один экземпляр FileInfo и задайте путь к целевому файлу PDF.
  • После этого повторите описанный выше шаг, чтобы добавить дополнительные целевые файлы.
  • Затем создайте экземпляр ComparisonOptions.
  • Затем назначьте исходные/целевые файлы и укажите путь к выходному файлу.
  • После этого создайте экземпляр ComparisonsRequest с объектом ComparisonOptions.
  • Наконец, получите результаты, вызвав метод CompareApi.comparisons() с ComparisonsRequest в качестве аргумента.

В следующем примере кода показано, как сравнить несколько файлов PDF с помощью REST API в Python.

# В этом примере кода показано, как сравнивать несколько файлов PDF.
# Создайте необходимые экземпляры API
api_instance = groupdocs_comparison_cloud.CompareApi.from_keys(client_id, client_secret)

# Исходный PDF
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"

# Целевой PDF 1
target1 = groupdocs_comparison_cloud.FileInfo()
target1.file_path = "target.pdf"

# Целевой PDF 2
target2 = groupdocs_comparison_cloud.FileInfo()
target2.file_path = "target2.pdf"

# Определить параметры сравнения
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target1, target2]
options.output_path = "result.pdf"

# Создайте запрос на сравнение и сравните
request = groupdocs_comparison_cloud.ComparisonsRequest(options)
response = api_instance.comparisons(request)

Настройка результатов сравнения в Python

Мы можем настроить стиль изменений, обнаруженных в результате процесса сравнения, выполнив шаги, указанные ниже:

  • Во-первых, создайте экземпляр CompareApi.
  • Затем создайте экземпляр FileInfo и укажите путь к исходному файлу PDF.
  • Затем создайте еще один экземпляр FileInfo и задайте путь к целевому файлу PDF.
  • Затем создайте экземпляр файла Settings.
  • Затем установите чувствительность сравнения и различные свойства, чтобы настроить стиль элемента.
  • Затем создайте экземпляр ComparisonOptions.
  • Затем назначьте исходные/целевые файлы и укажите путь к выходному файлу.
  • После этого создайте экземпляр ComparisonsRequest с объектом ComparisonOptions.
  • Наконец, получите результаты, вызвав метод CompareApi.comparisons() с ComparisonsRequest в качестве аргумента.

В следующем примере кода показано, как настроить результаты сравнения с помощью REST API в Python.

# В этом примере кода показано, как cНастроить результаты сравнения.
# Создайте необходимые экземпляры API
api_instance = groupdocs_comparison_cloud.СравниватьApi.from_keys(client_id, client_secret)

# Исходный PDF
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"

# Целевой PDF
target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.pdf"

settings = groupdocs_comparison_cloud.Settings()

# Сравнить чувствительность
settings.sensitivity_of_comparison = 100

# Настройте стили для изменений
settings.inserted_items_style = groupdocs_comparison_cloud.ItemsStyle()
settings.inserted_items_style.highlight_color = "14297642"
settings.inserted_items_style.font_color = "16711680"
settings.inserted_items_style.underline = True
settings.deleted_items_style = groupdocs_comparison_cloud.ItemsStyle()
settings.deleted_items_style.font_color = "14166746"
settings.deleted_items_style.bold = True
settings.changed_items_style = groupdocs_comparison_cloud.ItemsStyle()
settings.changed_items_style.font_color = "14320170"
settings.changed_items_style.italic = True

# Определить параметры сравнения
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]
options.output_path = "result.pdf"
options.settings = settings

# Создать запрос на сравнение
request = groupdocs_comparison_cloud.ComparisonsRequest(options)

# Сравнивать
response = api_instance.comparisons(request)

Получить список изменений в Python

Мы можем получить список всех изменений, обнаруженных при сравнении PDF-файлов, выполнив следующие шаги:

  • Во-первых, создайте экземпляр CompareApi.
  • Затем создайте экземпляр FileInfo и укажите путь к исходному файлу PDF.
  • Затем создайте еще один экземпляр FileInfo и задайте путь к целевому файлу PDF.
  • Затем создайте экземпляр ComparisonOptions.
  • Затем назначьте исходные/целевые файлы и укажите путь к выходному файлу.
  • После этого создайте экземпляр PostChangesRequest с объектом ComparisonOptions.
  • Наконец, получите результаты, вызвав метод CompareApi.post\changes() с ComparisonsRequest в качестве аргумента.

В следующем примере кода показано, как получить список изменений с помощью REST API в Python.

# В этом примере кода показано, как получить список всех изменений.
# Создайте необходимые экземпляры API
api_instance = groupdocs_comparison_cloud.CompareApi.from_keys(client_id, client_secret)

# Исходный PDF
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"

# Целевой PDF
target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.pdf"

# Определить параметры сравнения
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]
options.output_path = "result.pdf"

# Создать запрос на публикацию изменений
request = groupdocs_comparison_cloud.PostChangesRequest(options)
# Опубликовать изменения
response = api_instance.post_changes(request)

# Показать изменения
for change in response:
  print("Change # " + str(change.id + 1) + "- Target Text: " + str(change.target_text) + ", Text: " + str(change.text) + ", Type: " + str(change.type));
Получить список изменений в Python

Получить список изменений в Python.

Сравните и сохраните с паролем и метаданными в Python

Мы можем защитить полученный файл паролем и сохранить его с метаданными, выполнив следующие действия:

  • Во-первых, создайте экземпляр CompareApi.
  • Затем создайте экземпляр FileInfo и укажите путь к исходному файлу PDF.
  • Затем создайте еще один экземпляр FileInfo и задайте путь к целевому файлу PDF.
  • Затем создайте экземпляр файла Settings.
  • Затем создайте экземпляр метаданных.
  • После этого установите различные свойства метаданных, такие как автор, компания, последний\сохранить\по и т. д.
  • Затем установите пароль и пароль\сохраните\параметры.
  • Затем создайте экземпляр ComparisonOptions.
  • Затем назначьте исходные/целевые файлы и укажите путь к выходному файлу.
  • После этого создайте экземпляр ComparisonsRequest с объектом ComparisonOptions.
  • Наконец, получите результаты, вызвав метод CompareApi.comparisons() с ComparisonsRequest в качестве аргумента.

В следующем примере кода показано, как сохранить результирующий файл с паролем и метаданными с помощью REST API в Python.

# В этом примере кода показано, как сохранить результирующий файл с паролем и метаданными.
# Создайте необходимые экземпляры API
api_instance = groupdocs_comparison_cloud.СравниватьApi.from_keys(client_id, client_secret)

# Исходный PDF
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"

# Целевой PDF
target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.pdf"

settings = groupdocs_comparison_cloud.Settings()
# Установить метаданные
settings.meta_data = groupdocs_comparison_cloud.Metadata()
settings.meta_data.author = "Tom"
settings.meta_data.company = "GroupDocs"
settings.meta_data.last_save_by = "Jack"

#Set password
settings.password_save_option = "User"
settings.password = "password"

# Определить параметры сравнения
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]
options.output_path = "result.pdf"
options.settings = settings

# Создать запрос на сравнение
request = groupdocs_comparison_cloud.ComparisonsRequest(options)

# Сравнивать
response = api_instance.comparisons(request)

Попробуйте онлайн

Пожалуйста, попробуйте следующий бесплатный онлайн-инструмент сравнения PDF, разработанный с использованием вышеуказанного API. https://products.groupdocs.app/comparison/pdf

Заключение

В этой статье мы узнали, как сравнивать PDF-документы в облаке. Мы также увидели, как сравнивать несколько файлов PDF, настраивать стиль изменений и получать список изменений в Python. В этой статье также объясняется, как программно загрузить несколько PDF-файлов в облако, а затем загрузить полученный файл из облака. Кроме того, вы можете узнать больше о GroupDocs.Comparison Cloud API, используя документацию. Мы также предоставляем раздел Справочник по API, который позволяет вам визуализировать наши API и взаимодействовать с ними непосредственно через браузер. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также