PDF(Portable Document Format) é um dos tipos de arquivo mais usados atualmente. Normalmente usado para distribuir documentos somente leitura, preservando o layout de uma página. Em vários casos, podemos precisar comparar o conteúdo de dois ou mais documentos PDF ou comparar várias versões do mesmo documento. Podemos facilmente comparar documentos PDF programaticamente para identificar semelhanças e diferenças. Neste artigo, aprenderemos como comparar arquivos PDF usando uma API REST em Python.
Os seguintes tópicos serão abordados neste artigo:
- API REST para comparar arquivos PDF e Python SDK
- Compare dois arquivos PDF usando uma API REST em Python
- Comparar vários arquivos PDF em Python
- Personalizar resultados de comparação em Python
- Obter lista de alterações em Python
- Compare e salve com senha e metadados em Python
API REST para comparar arquivos PDF e Python SDK
Para comparar documentos PDF, usaremos a API Python SDK of GroupDocs.Comparison Cloud. Ele permite que você compare dois ou mais documentos dos formatos suportados e encontre as diferenças. Instale-o usando o seguinte comando no console:
pip install groupdocs_comparison_cloud
Por favor, obtenha seu ID e Segredo do cliente no painel antes de seguir as etapas mencionadas. Depois de ter seu ID e segredo, adicione o código conforme mostrado abaixo:
# Este exemplo de código demonstra como definir o ID e o segredo do cliente.
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 = ""
Compare dois arquivos PDF usando uma API REST em Python
Podemos comparar documentos PDF na nuvem seguindo as etapas simples abaixo:
- Upload os arquivos PDF para a nuvem
- Comparar arquivos PDF
- Baixe o arquivo PDF resultante
Carregar os arquivos PDF
Em primeiro lugar, faremos o upload dos arquivos PDF de origem e destino para a nuvem usando o seguinte exemplo de código:
# Este exemplo de código demonstra como fazer upload de arquivos PDF para a nuvem.
# Criar instância da API
file_api = groupdocs_comparison_cloud.FileApi.from_config(configuration)
# fazer upload de arquivos de amostra
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)
Como resultado, os arquivos enviados estarão disponíveis na seção de arquivos do painel na nuvem.
Comparar arquivos PDF usando Python
Podemos comparar dois documentos PDF programaticamente seguindo as etapas abaixo:
- Em primeiro lugar, crie uma instância do CompareApi.
- Em seguida, crie uma instância do FileInfo.
- Em seguida, defina o caminho do arquivo PDF de origem.
- Depois disso, crie outra instância do FileInfo.
- Em seguida, defina o caminho do arquivo PDF de destino.
- Em seguida, crie uma instância do ComparisonOptions.
- Em seguida, atribua arquivos de origem e destino.
- Além disso, defina o caminho do arquivo de saída.
- Depois disso, crie uma instância do objeto ComparisonsRequest com ComparisonOptions
- Finalmente, obtenha resultados chamando o método CompareApi.comparisons() com ComparisonsRequest como argumento.
O exemplo de código a seguir mostra como comparar dois arquivos PDF usando uma API REST em Python.
# Este exemplo de código demonstra como comparar dois arquivos PDF.
# Criar uma instância da API
api_instance = groupdocs_comparison_cloud.CompareApi.from_keys(client_id, client_secret)
# Arquivo de origem de entrada
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"
# Arquivo de destino
target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.pdf"
# Definir opções de comparação
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]
options.output_path = "result.pdf"
# Criar solicitação de comparação
request = groupdocs_comparison_cloud.ComparisonsRequest(options)
# comparar
response = api_instance.comparisons(request)
O arquivo PDF resultante também contém uma página de resumo no final do documento, conforme mostrado abaixo:
Baixe o arquivo resultante
O exemplo de código acima salvará as diferenças em um arquivo PDF recém-criado na nuvem. Ele pode ser baixado usando o seguinte exemplo de código:
# Este exemplo de código demonstra como baixar o arquivo resultante.
# Criar instância da API
file_api = groupdocs_comparison_cloud.FileApi.from_config(configuration)
# Criar solicitação de arquivo de download
request = groupdocs_comparison_cloud.DownloadFileRequest("result.pdf", my_storage)
# ⇬ Fazer download do arquivo
response = file_api.download_file(request)
# Mova o arquivo baixado para o seu diretório de trabalho
shutil.move(response, "C:\\Files\\")
Comparar vários arquivos PDF em Python
Podemos comparar vários documentos PDF seguindo as etapas abaixo:
- Em primeiro lugar, crie uma instância do CompareApi.
- Em seguida, crie uma instância do FileInfo e defina o caminho do arquivo PDF de origem.
- Em seguida, crie outra instância do FileInfo e defina o caminho do arquivo PDF de destino.
- Depois disso, repita a etapa acima para adicionar mais arquivos de destino.
- Em seguida, crie uma instância do ComparisonOptions.
- Em seguida, atribua arquivos de origem/destino e defina o caminho do arquivo de saída.
- Depois disso, crie uma instância do objeto ComparisonsRequest com ComparisonOptions
- Finalmente, obtenha resultados chamando o método CompareApi.comparisons() com ComparisonsRequest como argumento.
O exemplo de código a seguir mostra como comparar vários arquivos PDF usando uma API REST em Python.
# Este exemplo de código demonstra como comparar vários arquivos PDF.
# Crie instâncias de API necessárias
api_instance = groupdocs_comparison_cloud.CompareApi.from_keys(client_id, client_secret)
# PDF de origem
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"
# PDF de destino 1
target1 = groupdocs_comparison_cloud.FileInfo()
target1.file_path = "target.pdf"
# PDF de destino 2
target2 = groupdocs_comparison_cloud.FileInfo()
target2.file_path = "target2.pdf"
# Definir opções de comparação
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target1, target2]
options.output_path = "result.pdf"
# Criar solicitação de comparação e comparar
request = groupdocs_comparison_cloud.ComparisonsRequest(options)
response = api_instance.comparisons(request)
Personalizar resultados de comparação em Python
Podemos customizar o estilo das mudanças encontradas no resultado do processo de comparação seguindo os passos abaixo:
- Em primeiro lugar, crie uma instância do CompareApi.
- Em seguida, crie uma instância do FileInfo e defina o caminho do arquivo PDF de origem.
- Em seguida, crie outra instância do FileInfo e defina o caminho do arquivo PDF de destino.
- Em seguida, crie uma instância do arquivo Settings.
- Em seguida, defina a sensibilidade de comparação e várias propriedades para personalizar o estilo do item.
- Em seguida, crie uma instância do ComparisonOptions.
- Em seguida, atribua arquivos de origem/destino e defina o caminho do arquivo de saída.
- Depois disso, crie uma instância do objeto ComparisonsRequest com ComparisonOptions
- Finalmente, obtenha resultados chamando o método CompareApi.comparisons() com ComparisonsRequest como argumento.
O exemplo de código a seguir mostra como personalizar os resultados da comparação usando uma API REST em Python.
# Este exemplo de código demonstra como personalizar os resultados da comparação.
# Crie instâncias de API necessárias
api_instance = groupdocs_comparison_cloud.CompararApi.from_keys(client_id, client_secret)
# PDF de origem
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"
# PDF de destino
target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.pdf"
settings = groupdocs_comparison_cloud.Settings()
# Comparar sensibilidade
settings.sensitivity_of_comparison = 100
# Personalize estilos para as alterações
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
# Definir opções de comparação
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]
options.output_path = "result.pdf"
options.settings = settings
# Criar solicitação de comparação
request = groupdocs_comparison_cloud.ComparisonsRequest(options)
# Comparar
response = api_instance.comparisons(request)
Obter lista de alterações em Python
Podemos obter uma lista de todas as alterações encontradas durante a comparação de arquivos PDF seguindo as etapas abaixo:
- Em primeiro lugar, crie uma instância do CompareApi.
- Em seguida, crie uma instância do FileInfo e defina o caminho do arquivo PDF de origem.
- Em seguida, crie outra instância do FileInfo e defina o caminho do arquivo PDF de destino.
- Em seguida, crie uma instância do ComparisonOptions.
- Em seguida, atribua arquivos de origem/destino e defina o caminho do arquivo de saída.
- Depois disso, crie uma instância do PostChangesRequest com o objeto ComparisonOptions
- Finalmente, obtenha resultados chamando o método CompareApi.post\changes() com ComparisonsRequest como argumento.
O exemplo de código a seguir mostra como obter uma lista de alterações usando uma API REST em Python.
# Este exemplo de código demonstra como obter uma lista de todas as alterações.
# Crie instâncias de API necessárias
api_instance = groupdocs_comparison_cloud.CompareApi.from_keys(client_id, client_secret)
# PDF de origem
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"
# PDF de destino
target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.pdf"
# Definir opções de comparação
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]
options.output_path = "result.pdf"
# Criar solicitação de alterações de postagem
request = groupdocs_comparison_cloud.PostChangesRequest(options)
# Postar alterações
response = api_instance.post_changes(request)
# Exibir alterações
for change in response:
print("Change # " + str(change.id + 1) + "- Target Text: " + str(change.target_text) + ", Text: " + str(change.text) + ", Type: " + str(change.type));
Compare e salve com senha e metadados em Python
Podemos proteger com senha o arquivo resultante e salvá-lo com metadados seguindo as etapas abaixo:
- Em primeiro lugar, crie uma instância do CompareApi.
- Em seguida, crie uma instância do FileInfo e defina o caminho do arquivo PDF de origem.
- Em seguida, crie outra instância do FileInfo e defina o caminho do arquivo PDF de destino.
- Em seguida, crie uma instância do arquivo Settings.
- Em seguida, crie uma instância do Metadata.
- Depois disso, defina várias propriedades de metadados, como autor, empresa, último\salvar\por, etc.
- Em seguida, defina a senha e a senha\salvar\opções.
- Em seguida, crie uma instância do ComparisonOptions.
- Em seguida, atribua arquivos de origem/destino e defina o caminho do arquivo de saída.
- Depois disso, crie uma instância do objeto ComparisonsRequest com ComparisonOptions
- Finalmente, obtenha resultados chamando o método CompareApi.comparisons() com ComparisonsRequest como argumento.
O exemplo de código a seguir mostra como salvar o arquivo resultante com uma senha e metadados usando uma API REST em Python.
# Este exemplo de código demonstra como salvar o arquivo resultante com uma senha e metadados.
# Crie instâncias de API necessárias
api_instance = groupdocs_comparison_cloud.CompararApi.from_keys(client_id, client_secret)
# PDF de origem
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"
# PDF de destino
target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.pdf"
settings = groupdocs_comparison_cloud.Settings()
# Definir metadados
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"
# Definir opções de comparação
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]
options.output_path = "result.pdf"
options.settings = settings
# Criar solicitação de comparação
request = groupdocs_comparison_cloud.ComparisonsRequest(options)
# Comparar
response = api_instance.comparisons(request)
Experimente on-line
Experimente a seguinte ferramenta de comparação de PDF on-line gratuita, desenvolvida usando a API acima. https://products.groupdocs.app/comparison/pdf
Conclusão
Neste artigo, aprendemos como comparar documentos PDF na nuvem. Também vimos como comparar vários arquivos PDF, personalizar o estilo de alterações e obter uma lista de alterações em Python. Este artigo também explicou como carregar programaticamente vários arquivos PDF para a nuvem e, em seguida, baixar o arquivo resultante da nuvem. Além disso, você pode aprender mais sobre GroupDocs.Comparison Cloud API usando a documentação. Também fornecemos uma seção Referência de API que permite visualizar e interagir com nossas APIs diretamente pelo navegador. Em caso de ambiguidade, sinta-se à vontade para nos contatar no fórum.