La détection des différences entre deux fichiers Word est un besoin fréquent pour les développeurs qui gèrent des contrats, des rapports ou des documents juridiques. Le Aspose.BarCode Cloud SDK for Python fournit une bibliothèque puissante qui peut être combinée avec Aspose.Words Cloud SDK for Python pour comparer programmatiquement le texte dans les documents Word en Python. Dans ce guide, vous configurerez votre environnement, téléchargerez les documents vers le stockage Aspose Cloud, configurerez les options de comparaison, exécuterez la comparaison et récupérerez le document résultant avec les modifications suivies. Vous verrez également comment obtenir le même résultat en utilisant des appels REST directs avec cURL.
Préparation de l’environnement - Prérequis et configuration
Avant de commencer, assurez-vous d’avoir les éléments suivants :
- Python 3.8 ou version plus récente installé localement.
- Un compte Aspose Cloud avec client_id et client_secret (disponible dans le tableau de bord Aspose Cloud).
- Accès au stockage Aspose Cloud pour la gestion de fichiers temporaires.
Installez le SDK BarCode via pip :
pip install aspose-barcode-cloud
Vous aurez également besoin du Aspose.Words Cloud SDK for Python, qui gère les opérations spécifiques à Word :
pip install asposewordscloud
Définissez vos informations d’identification en tant que variables d’environnement ou remplacez les espaces réservés dans le code :
import os
client_id = os.getenv("ASPOSE_CLIENT_ID")
client_secret = os.getenv("ASPOSE_CLIENT_SECRET")
Les SDK utiliseront ces valeurs pour s’authentifier auprès des services Aspose Cloud. Une fois l’environnement prêt, nous pouvons passer à la mise en œuvre.
Comparer le texte dans les documents Word en Python : guide étape par étape
Étape 1 : Charger le document source
Tout d’abord, configurez vos informations d’identification Aspose Cloud afin que le SDK puisse s’authentifier et que vous puissiez comparer le texte dans des documents Word en Python.
from asposewordscloud import WordsApi, Configuration
config = Configuration(client_id=client_id, client_secret=client_secret)
words_api = WordsApi(config)
Étape 2 : Télécharger les documents source et cible
Téléchargez les deux fichiers DOCX que vous souhaitez comparer. La fonction d’assistance abstrait le processus de téléchargement.
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")
Étape 3 : Définir les options de comparaison
Ensuite, définissez le CompareOptions pour définir comment le SDK doit comparer le texte dans les documents Word en Python, par exemple en ignorant la casse ou les commentaires.
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"
)
Étape 4 : Exécuter la comparaison de documents
Appelez maintenant la méthode compare_document pour comparer réellement le texte des documents Word en Python et générer un résultat suivi des révisions.
compare_result = words_api.compare_document(
request={
"name": "doc1.docx",
"compare_data": compare_opts,
"folder": "TempCompare"
}
)
Étape 5 : Récupérer et enregistrer le résultat
Enfin, écrivez le document résultant sur le disque et nettoyez les fichiers temporaires.
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"})
Comparer le texte dans les documents Word en Python Implémentation complète - Exemple de code complet
Le code suivant montre le flux de travail complet pour comparer du texte dans des documents Word en Python à l’aide des API Aspose.
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}"})
Remarque: Cet exemple de code montre la fonctionnalité principale. Avant de l’utiliser dans votre projet, assurez-vous de mettre à jour tous les chemins de fichiers et les valeurs de configuration pour qu’ils correspondent à votre environnement réel, vérifiez que toutes les dépendances requises sont correctement installées et testez soigneusement dans votre environnement de développement. Si vous rencontrez des problèmes, veuillez consulter la documentation officielle ou contacter l’équipe de support pour obtenir de l’aide.
Effectuer la comparaison de documents via l’API REST en utilisant cURL
Ci-dessous se trouvent les commandes cURL qui effectuent la même comparaison de texte dans des documents Word en opération Python via l’API REST.
- Authentifier et obtenir le jeton d’accès
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"
- Téléverser le fichier source
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"
- Téléverser le fichier cible
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"
- Exécuter la comparaison
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
- Télécharger le fichier de sortie
curl -X GET "https://api.aspose.cloud/v4.0/words/TempCompare/compare_result.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o compare_result.docx
Pour plus de détails sur les corps de requête et les paramètres supplémentaires, consultez la documentation officielle de l’API.
Conclusion
Cet article montre comment comparer du texte dans des documents Word en Python en utilisant le Aspose.BarCode Cloud SDK for Python. En suivant les étapes de configuration des informations d’identification, de téléchargement des fichiers, de configuration des options de comparaison et d’appel de l’API de comparaison, vous pouvez automatiser les flux de travail de différenciation de documents dans vos applications. N’oubliez pas d’obtenir une licence appropriée pour une utilisation en production ; une licence temporaire est disponible sur la temporary license page, et les détails complets de la licence sont répertoriés sur la page du produit. Avec ces outils, l’intégration de la comparaison de documents dans vos projets Python devient simple et fiable.
FAQ
-
Comment le SDK Aspose.BarCode Cloud pour Python m’aide-t-il à comparer du texte dans des documents Word en Python ?
Le SDK fonctionne conjointement avec Aspose.Words Cloud SDK for Python pour télécharger des fichiers DOCX, définir les options de comparaison et générer un résultat suivi des révisions qui met en évidence les différences. Voir la page produit Aspose.BarCode Cloud SDK for Python pour plus de détails. -
Puis-je comparer efficacement de gros fichiers Word ?
Oui. En utilisant l’APIcompare_document, vous pouvez diffuser de gros fichiers DOCX depuis le stockage Aspose Cloud, et le service les traite côté serveur, minimisant ainsi l’utilisation de la mémoire sur votre machine. Consultez la documentation officielle pour des conseils de performance. -
Quels formats de fichiers sont pris en charge pour la comparaison ?
L’API fonctionne principalement avec les fichiers DOCX, mais vous pouvez également comparer les fichiers DOC après les avoir convertis en DOCX à l’aide d’Aspose.Words. Tous les noms de formats sont en majuscules, par exemple, DOCX, PDF. -
Ai-je besoin d’une licence pour exécuter cela en production ?
Une licence temporaire est disponible sur la page de licence temporaire. Pour une utilisation en production, vous devez acheter une licence complète comme indiqué sur la page du produit.