Rilevare le differenze tra due file Word è una necessità frequente per gli sviluppatori che gestiscono contratti, report o documenti legali. L’Aspose.BarCode Cloud SDK for Python fornisce una libreria potente che può essere combinata con Aspose.Words Cloud SDK for Python per confrontare programmaticamente il testo nei documenti Word in Python. In questa guida configurerai l’ambiente, caricherai i documenti nello storage di Aspose Cloud, imposterai le opzioni di confronto, eseguirai il confronto e recupererai il documento risultante con le modifiche tracciate. Vedrai anche come ottenere lo stesso risultato utilizzando chiamate REST dirette con cURL.
Preparazione dell’ambiente - Prerequisiti e configurazione
Prima di iniziare, assicurati di avere quanto segue:
- Python 3.8 o versioni successive installati localmente.
- Un account Aspose Cloud con client_id e client_secret (disponibili nella dashboard di Aspose Cloud).
- Accesso allo storage di Aspose Cloud per la gestione temporanea dei file.
Installa il BarCode SDK tramite pip:
pip install aspose-barcode-cloud
Avrai anche bisogno dell’Aspose.Words Cloud SDK per Python, che gestisce le operazioni specifiche di Word:
pip install asposewordscloud
Imposta le tue credenziali come variabili d’ambiente o sostituisci i segnaposto nel codice:
import os
client_id = os.getenv("ASPOSE_CLIENT_ID")
client_secret = os.getenv("ASPOSE_CLIENT_SECRET")
Gli SDK utilizzeranno questi valori per autenticarsi contro i servizi Aspose Cloud. Una volta che l’ambiente è pronto, possiamo passare all’implementazione.
Confronta il testo nei documenti Word in Python: Guida passo‑passo
Passo 1: Carica il documento di origine
Per prima cosa, configura le tue credenziali Aspose Cloud in modo che l’SDK possa autenticarsi e tu possa confrontare il testo nei documenti Word in Python.
from asposewordscloud import WordsApi, Configuration
config = Configuration(client_id=client_id, client_secret=client_secret)
words_api = WordsApi(config)
Passo 2: Carica i documenti di origine e destinazione
Carica i due file DOCX che desideri confrontare. La funzione di supporto astrae il processo di caricamento.
def upload(local_file, remote_name):
with open(local_file, "rb") as f:
words_api.upload_file(request={"path": f"TempCompare/{remote_name}", "file": f})
upload("doc1.docx", "doc1.docx")
upload("doc2.docx", "doc2.docx")
Passo 3: Imposta le opzioni di confronto
Successivamente, imposta CompareOptions per definire come l’SDK deve confrontare il testo nei documenti Word in Python, ad esempio ignorando maiuscole/minuscole o i commenti.
from asposewordscloud.models import CompareOptions
compare_opts = CompareOptions(
author="PythonComparer",
compare_options="IgnoreCase,IgnoreComments,IgnoreFormatting",
file_path="TempCompare/doc2.docx",
revision_author="PythonComparer",
revision_date_time="2023-01-01T00:00:00Z"
)
Passo 4: Esegui il confronto dei documenti
Ora chiama il metodo compare_document per confrontare effettivamente il testo nei documenti Word in Python e generare un risultato con tracciamento delle revisioni.
compare_result = words_api.compare_document(
request={
"name": "doc1.docx",
"compare_data": compare_opts,
"folder": "TempCompare"
}
)
Passo 5: Recupera e salva il risultato
Infine, scrivi il documento risultante su disco e pulisci i file temporanei.
with open("compare_result.docx", "wb") as out_file:
out_file.write(compare_result.document)
words_api.delete_file(request={"path": "TempCompare/doc1.docx"})
words_api.delete_file(request={"path": "TempCompare/doc2.docx"})
Confronta il testo nei documenti Word in Python - Implementazione completa - Esempio di codice completo
Il codice seguente dimostra il flusso di lavoro completo per confrontare il testo nei documenti Word in Python utilizzando le Aspose APIs.
import os
from asposewordscloud import WordsApi, Configuration
from asposewordscloud.models import CompareOptions
# ----------------------------------------------------------------------
# Configuration – set your Aspose Cloud credentials in environment variables
# ----------------------------------------------------------------------
client_id = os.getenv("ASPOSE_CLIENT_ID")
client_secret = os.getenv("ASPOSE_CLIENT_SECRET")
config = Configuration(client_id=client_id, client_secret=client_secret)
# ----------------------------------------------------------------------
# Initialize the Words API client
# ----------------------------------------------------------------------
words_api = WordsApi(config)
# ----------------------------------------------------------------------
# Local file paths (replace with your actual files)
# ----------------------------------------------------------------------
source_path = "doc1.docx"
target_path = "doc2.docx"
result_path = "compare_result.docx"
# ----------------------------------------------------------------------
# Remote folder in Aspose Cloud storage where temporary files are kept
# ----------------------------------------------------------------------
remote_folder = "TempCompare"
# ----------------------------------------------------------------------
# Helper to upload a local file to Aspose Cloud storage
# ----------------------------------------------------------------------
def upload(local_file, remote_name):
with open(local_file, "rb") as f:
words_api.upload_file(request={"path": f"{remote_folder}/{remote_name}", "file": f})
# ----------------------------------------------------------------------
# Upload source and target documents
# ----------------------------------------------------------------------
upload(source_path, source_path)
upload(target_path, target_path)
# ----------------------------------------------------------------------
# Set up comparison options
# ----------------------------------------------------------------------
compare_opts = CompareOptions(
author="PythonComparer",
compare_options="IgnoreCase,IgnoreComments,IgnoreFormatting",
file_path=f"{remote_folder}/{target_path}",
revision_author="PythonComparer",
revision_date_time="2023-01-01T00:00:00Z"
)
# ----------------------------------------------------------------------
# Perform the comparison
# ----------------------------------------------------------------------
try:
compare_result = words_api.compare_document(
request={
"name": source_path,
"compare_data": compare_opts,
"folder": remote_folder
}
)
# The API returns the resulting document as a byte array
with open(result_path, "wb") as out_file:
out_file.write(compare_result.document)
finally:
# ------------------------------------------------------------------
# Clean up remote temporary files
# ------------------------------------------------------------------
words_api.delete_file(request={"path": f"{remote_folder}/{source_path}"})
words_api.delete_file(request={"path": f"{remote_folder}/{target_path}"})
Nota: Questo esempio di codice dimostra la funzionalità principale. Prima di usarlo nel tuo progetto, assicurati di aggiornare tutti i percorsi dei file e i valori di configurazione per corrispondere al tuo ambiente reale, verifica che tutte le dipendenze richieste siano installate correttamente e testa accuratamente nel tuo ambiente di sviluppo. Se incontri problemi, consulta la documentazione ufficiale o contatta il team di supporto per assistenza.
Esecuzione del confronto dei documenti tramite REST API usando cURL
Di seguito sono riportati i comandi cURL che eseguono lo stesso confronto di testo nei documenti Word in operazione Python tramite l’API REST.
- Autenticare e ottenere il token di accesso
curl -X POST "https://api.aspose.cloud/connect/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
- Carica il file di origine
curl -X PUT "https://api.aspose.cloud/v4.0/words/TempCompare/doc1.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/octet-stream" \
--data-binary "@doc1.docx"
- Carica il file di destinazione
curl -X PUT "https://api.aspose.cloud/v4.0/words/TempCompare/doc2.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/octet-stream" \
--data-binary "@doc2.docx"
- Esegui il Confronto
curl -X POST "https://api.aspose.cloud/v4.0/words/doc1.docx/compare" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"compareOptions": {
"author": "PythonComparer",
"compareOptions": "IgnoreCase,IgnoreComments,IgnoreFormatting",
"filePath": "TempCompare/doc2.docx",
"revisionAuthor": "PythonComparer",
"revisionDateTime": "2023-01-01T00:00:00Z"
}
}' -o compare_result.docx
- Scarica il file di output
curl -X GET "https://api.aspose.cloud/v4.0/words/TempCompare/compare_result.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o compare_result.docx
Per ulteriori dettagli su corpi della richiesta e parametri aggiuntivi, vedere la documentazione ufficiale dell’API.
Conclusione
Questo articolo ha dimostrato come confrontare il testo nei documenti Word in Python utilizzando l’Aspose.BarCode Cloud SDK for Python. Seguendo i passaggi per configurare le credenziali, caricare i file, impostare le opzioni di confronto e invocare l’API di confronto, è possibile automatizzare i flussi di lavoro di diff dei documenti nelle proprie applicazioni. Ricordati di ottenere una licenza adeguata per l’uso in produzione; una licenza temporanea è disponibile nella pagina della licenza temporanea, e i dettagli completi della licenza sono elencati nella pagina del prodotto. Con questi strumenti, integrare il confronto dei documenti nei tuoi progetti Python diventa semplice e affidabile.
FAQs
-
Come mi aiuta l’Aspose.BarCode Cloud SDK for Python a confrontare il testo nei documenti Word in Python?
L’SDK funziona insieme all’Aspose.Words Cloud SDK for Python per caricare file DOCX, impostare le opzioni di confronto e generare un risultato con tracciamento delle revisioni che evidenzia le differenze. Vedi la pagina prodotto Aspose.BarCode Cloud SDK for Python per i dettagli. -
Posso confrontare file Word di grandi dimensioni in modo efficiente?
Sì. Utilizzando l’APIcompare_documentè possibile trasmettere in streaming file DOCX di grandi dimensioni dallo storage di Aspose Cloud, e il servizio li elabora sul lato server, riducendo al minimo l’utilizzo della memoria sulla tua macchina. Consulta la documentazione ufficiale per suggerimenti sulle prestazioni. -
Quali formati di file sono supportati per il confronto?
L’API funziona principalmente con file DOCX, ma è possibile confrontare anche i file DOC dopo che sono stati convertiti in DOCX utilizzando Aspose.Words. Tutti i nomi dei formati sono in maiuscolo, ad es. DOCX, PDF. -
Ho bisogno di una licenza per eseguire questo in produzione?
Una licenza temporanea è disponibile nella pagina della licenza temporanea. Per l’uso in produzione dovresti acquistare una licenza completa come descritto nella pagina del prodotto.