Confronta i file PDF utilizzando l'API REST in Python

PDF(Portable Document Format) è uno dei tipi di file più comunemente usati oggi. Tipicamente utilizzato per distribuire documenti di sola lettura, preservando il layout di una pagina. In vari casi, potrebbe essere necessario confrontare i contenuti di due o più documenti PDF o confrontare più versioni dello stesso documento. Possiamo facilmente confrontare i documenti PDF a livello di codice per identificare somiglianze e differenze. In questo articolo impareremo come confrontare i file PDF utilizzando un’API REST in Python.

In questo articolo saranno trattati i seguenti argomenti:

API REST per confrontare file PDF e Python SDK

Per confrontare i documenti PDF, utilizzeremo l’API Python SDK of GroupDocs.Comparison Cloud. Ti permette di confrontare ‎due o più documenti dei formati supportati e trovare le differenze. Si prega di installarlo utilizzando il seguente comando nella console:

pip install groupdocs_comparison_cloud

Si prega di ottenere l’ID cliente e il segreto dalla dashboard prima di seguire i passaggi menzionati. Una volta che hai il tuo ID e segreto, aggiungi il codice come mostrato di seguito:

# Questo esempio di codice mostra come impostare l'ID client e il segreto.
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 = ""

Confronta due file PDF utilizzando un’API REST in Python

Possiamo confrontare i documenti PDF sul cloud seguendo i semplici passaggi indicati di seguito:

  1. Carica i file PDF nel cloud
  2. Confronta file PDF
  3. Scarica il file PDF risultante

Carica i file PDF

In primo luogo, caricheremo i file PDF di origine e di destinazione nel cloud utilizzando il seguente esempio di codice:

# Questo esempio di codice mostra come caricare file PDF nel cloud.
# Crea un'istanza dell'API
file_api = groupdocs_comparison_cloud.FileApi.from_config(configuration)

# caricare file di esempio
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)

Di conseguenza, i file caricati saranno disponibili nella sezione file della dashboard sul cloud.

Confronta i file PDF usando Python

Possiamo confrontare due documenti PDF a livello di codice seguendo i passaggi indicati di seguito:

  • Innanzitutto, crea un’istanza di CompareApi.
  • Successivamente, crea un’istanza di FileInfo.
  • Quindi, imposta il percorso del file PDF di origine.
  • Successivamente, crea un’altra istanza di FileInfo.
  • Quindi, imposta il percorso del file PDF di destinazione.
  • Successivamente, crea un’istanza di ComparisonOptions.
  • Quindi, assegna i file di origine e di destinazione.
  • Inoltre, imposta il percorso del file di output.
  • Successivamente, crea un’istanza dell’oggetto ComparisonsRequest con ComparisonOptions
  • Infine, ottieni risultati chiamando il metodo CompareApi.comparisons() con ComparisonsRequest come argomento.

L’esempio di codice seguente mostra come confrontare due file PDF usando un’API REST in Python.

# Questo esempio di codice mostra come confrontare due file PDF.
# Crea un'istanza dell'API
api_instance = groupdocs_comparison_cloud.CompareApi.from_keys(client_id, client_secret)

# File sorgente di input
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"

# File di destinazione
target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.pdf"

# Definire le opzioni di confronto
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]
options.output_path = "result.pdf"

# Crea richiesta di confronto
request = groupdocs_comparison_cloud.ComparisonsRequest(options)

# confrontare
response = api_instance.comparisons(request)
Confronta due file PDF utilizzando un'API REST in Python

Confronta due file PDF utilizzando un’API REST in Python.

Il file PDF risultante contiene anche una pagina di riepilogo alla fine del documento, come mostrato di seguito:

Pagina di riepilogo.

Pagina di riepilogo che mostra il totale degli elementi eliminati o inseriti.

Scarica il file risultante

L’esempio di codice precedente salverà le differenze in un file PDF appena creato sul cloud. Può essere scaricato utilizzando il seguente esempio di codice:

# Questo esempio di codice illustra come scaricare il file risultante.
# Crea un'istanza dell'API
file_api = groupdocs_comparison_cloud.FileApi.from_config(configuration)

# Crea richiesta di download del file
request = groupdocs_comparison_cloud.DownloadFileRequest("result.pdf", my_storage)

# Download file
response = file_api.download_file(request)

# Sposta il file scaricato nella tua directory di lavoro
shutil.move(response, "C:\\Files\\") 

Confronta più file PDF in Python

Possiamo confrontare più documenti PDF seguendo i passaggi indicati di seguito:

  • Innanzitutto, crea un’istanza di CompareApi.
  • Successivamente, crea un’istanza di FileInfo e imposta il percorso del file PDF di origine.
  • Quindi, crea un’altra istanza di FileInfo e imposta il percorso del file PDF di destinazione.
  • Successivamente, ripetere il passaggio precedente per aggiungere altri file di destinazione.
  • Successivamente, crea un’istanza di ComparisonOptions.
  • Quindi, assegna i file di origine/destinazione e imposta il percorso del file di output.
  • Successivamente, crea un’istanza dell’oggetto ComparisonsRequest con ComparisonOptions
  • Infine, ottieni risultati chiamando il metodo CompareApi.comparisons() con ComparisonsRequest come argomento.

L’esempio di codice seguente mostra come confrontare più file PDF usando un’API REST in Python.

# Questo esempio di codice dimostra come confrontare più file PDF.
# Crea le istanze API necessarie
api_instance = groupdocs_comparison_cloud.CompareApi.from_keys(client_id, client_secret)

# Fonte PDF
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"

# PDF di destinazione 1
target1 = groupdocs_comparison_cloud.FileInfo()
target1.file_path = "target.pdf"

# PDF di destinazione 2
target2 = groupdocs_comparison_cloud.FileInfo()
target2.file_path = "target2.pdf"

# Definire le opzioni di confronto
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target1, target2]
options.output_path = "result.pdf"

# Crea richiesta di confronto e confronta
request = groupdocs_comparison_cloud.ComparisonsRequest(options)
response = api_instance.comparisons(request)

Personalizza i risultati del confronto in Python

Possiamo personalizzare lo stile delle modifiche trovate nel risultato del processo di confronto seguendo i passaggi indicati di seguito:

  • Innanzitutto, crea un’istanza di CompareApi.
  • Successivamente, crea un’istanza di FileInfo e imposta il percorso del file PDF di origine.
  • Quindi, crea un’altra istanza di FileInfo e imposta il percorso del file PDF di destinazione.
  • Successivamente, crea un’istanza del file Settings.
  • Quindi, imposta la sensibilità di confronto e varie proprietà per personalizzare lo stile dell’elemento.
  • Successivamente, crea un’istanza di ComparisonOptions.
  • Quindi, assegna i file di origine/destinazione e imposta il percorso del file di output.
  • Successivamente, crea un’istanza dell’oggetto ComparisonsRequest con ComparisonOptions
  • Infine, ottieni risultati chiamando il metodo CompareApi.comparisons() con ComparisonsRequest come argomento.

L’esempio di codice seguente mostra come personalizzare i risultati del confronto usando un’API REST in Python.

# Questo esempio di codice illustra come personalizzare i risultati del confronto.
# Crea le istanze API necessarie
api_instance = groupdocs_comparison_cloud.ConfrontareApi.from_keys(client_id, client_secret)

# Fonte PDF
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"

# PDF di destinazione
target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.pdf"

settings = groupdocs_comparison_cloud.Settings()

# Confronta la sensibilità
settings.sensitivity_of_comparison = 100

# Personalizza gli stili per le modifiche
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

# Definire le opzioni di confronto
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]
options.output_path = "result.pdf"
options.settings = settings

# Crea richiesta di confronto
request = groupdocs_comparison_cloud.ComparisonsRequest(options)

# Confrontare
response = api_instance.comparisons(request)

Ottieni l’elenco delle modifiche in Python

Possiamo ottenere un elenco di tutte le modifiche rilevate durante il confronto dei file PDF seguendo i passaggi indicati di seguito:

  • Innanzitutto, crea un’istanza di CompareApi.
  • Successivamente, crea un’istanza di FileInfo e imposta il percorso del file PDF di origine.
  • Quindi, crea un’altra istanza di FileInfo e imposta il percorso del file PDF di destinazione.
  • Successivamente, crea un’istanza di ComparisonOptions.
  • Quindi, assegna i file di origine/destinazione e imposta il percorso del file di output.
  • Successivamente, crea un’istanza dell’oggetto PostChangesRequest con ComparisonOptions
  • Infine, ottieni risultati chiamando il metodo CompareApi.post\changes() con ComparisonsRequest come argomento.

L’esempio di codice seguente mostra come ottenere un elenco di modifiche usando un’API REST in Python.

# Questo esempio di codice mostra come ottenere l'elenco di tutte le modifiche.
# Crea le istanze API necessarie
api_instance = groupdocs_comparison_cloud.CompareApi.from_keys(client_id, client_secret)

# Fonte PDF
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"

# PDF di destinazione
target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.pdf"

# Definire le opzioni di confronto
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]
options.output_path = "result.pdf"

# Crea una richiesta di modifica post
request = groupdocs_comparison_cloud.PostChangesRequest(options)
# Pubblica modifiche
response = api_instance.post_changes(request)

# Visualizza le modifiche
for change in response:
  print("Change # " + str(change.id + 1) + "- Target Text: " + str(change.target_text) + ", Text: " + str(change.text) + ", Type: " + str(change.type));
Ottieni l'elenco delle modifiche in Python

Ottieni l’elenco delle modifiche in Python.

Confronta e salva con password e metadati in Python

Possiamo proteggere con password il file risultante e salvarlo con i metadati seguendo i passaggi indicati di seguito:

  • Innanzitutto, crea un’istanza di CompareApi.
  • Successivamente, crea un’istanza di FileInfo e imposta il percorso del file PDF di origine.
  • Quindi, crea un’altra istanza di FileInfo e imposta il percorso del file PDF di destinazione.
  • Successivamente, crea un’istanza del file Settings.
  • Quindi, crea un’istanza di Metadata.
  • Successivamente, imposta varie proprietà dei metadati come autore, azienda, last\save\by, ecc.
  • Quindi, imposta password e password\save\options.
  • Successivamente, crea un’istanza di ComparisonOptions.
  • Quindi, assegna i file di origine/destinazione e imposta il percorso del file di output.
  • Successivamente, crea un’istanza dell’oggetto ComparisonsRequest con ComparisonOptions
  • Infine, ottieni risultati chiamando il metodo CompareApi.comparisons() con ComparisonsRequest come argomento.

L’esempio di codice seguente mostra come salvare il file risultante con una password e metadati usando un’API REST in Python.

# Questo esempio di codice illustra come salvare il file risultante con una password e metadati.
# Crea le istanze API necessarie
api_instance = groupdocs_comparison_cloud.ConfrontareApi.from_keys(client_id, client_secret)

# Fonte PDF
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"

# PDF di destinazione
target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.pdf"

settings = groupdocs_comparison_cloud.Settings()
# Imposta i metadati
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"

# Definire le opzioni di confronto
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]
options.output_path = "result.pdf"
options.settings = settings

# Crea richiesta di confronto
request = groupdocs_comparison_cloud.ComparisonsRequest(options)

# Confrontare
response = api_instance.comparisons(request)

Prova in linea

Prova il seguente strumento di confronto PDF online gratuito, sviluppato utilizzando l’API di cui sopra. https://products.groupdocs.app/comparison/pdf

Conclusione

In questo articolo, abbiamo imparato a confrontare i documenti PDF sul cloud. Abbiamo anche visto come confrontare più file PDF, personalizzare lo stile delle modifiche e ottenere un elenco delle modifiche in Python. Questo articolo spiega anche come caricare in modo programmatico più file PDF nel cloud e quindi scaricare il file risultante dal cloud. Inoltre, puoi saperne di più su GroupDocs.Comparison Cloud API utilizzando la documentazione. Forniamo anche una sezione Riferimento API che ti consente di visualizzare e interagire con le nostre API direttamente attraverso il browser. In caso di qualsiasi ambiguità, non esitate a contattarci sul forum.

Guarda anche