PDF(Portable Document Format) сегодня является одним из наиболее часто используемых типов файлов. Обычно используется для распространения документов только для чтения с сохранением макета страницы. В различных случаях нам может понадобиться сравнить содержимое двух или более PDF-документов или сравнить несколько версий одного и того же документа. Мы можем легко сравнивать PDF-документы программно, чтобы выявить сходства и различия. В этой статье мы узнаем, как сравнивать PDF-файлы с помощью REST API в Python.
В этой статье должны быть раскрыты следующие темы:
- REST API для сравнения PDF-файлов и Python SDK
- Сравните два файла PDF с помощью REST API в Python
- Сравните несколько файлов PDF в Python
- Настройка результатов сравнения в Python
- Получить список изменений в Python
- Сравните и сохраните с паролем и метаданными в 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-документы в облаке, выполнив простые шаги, указанные ниже:
- Загрузить PDF-файлы в облако
- Сравнить PDF-файлы
- Скачать полученный 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-файл также содержит сводную страницу в конце документа, как показано ниже:
Загрузите результирующий файл
Приведенный выше пример кода сохранит различия во вновь созданном файле 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
Мы можем защитить полученный файл паролем и сохранить его с метаданными, выполнив следующие действия:
- Во-первых, создайте экземпляр 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 и взаимодействовать с ними непосредственно через браузер. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.