Detektion af forskelle mellem to Word-filer er et hyppigt behov for udviklere, der håndterer kontrakter, rapporter eller juridiske dokumenter. Aspose.BarCode Cloud SDK for Python leverer et kraftfuldt bibliotek, der kan kombineres med Aspose.Words Cloud SDK for Python til programmatisk at sammenligne tekst i Word-dokumenter i Python. I denne vejledning vil du opsætte dit miljø, uploade dokumenter til Aspose Cloud-lagring, konfigurere sammenligningsindstillinger, køre sammenligningen og hente det resulterende dokument med sporede ændringer. Du vil også se, hvordan du opnår det samme resultat ved hjælp af direkte REST‑kald med cURL.
Miljøforberedelse - Forudsætninger og opsætning
Før du starter, skal du sikre dig, at du har følgende:
- Python 3.8 eller nyere installeret lokalt.
- En Aspose Cloud-konto med client_id og client_secret (tilgængelig i Aspose Cloud-dashboardet).
- Adgang til Aspose Cloud-lagring for midlertidig filhåndtering.
Installer BarCode SDK via pip:
pip install aspose-barcode-cloud
Du vil også have brug for Aspose.Words Cloud SDK for Python, som håndterer Word‑specifikke operationer:
pip install asposewordscloud
Indstil dine legitimationsoplysninger som miljøvariabler eller erstat pladsholderne i koden:
import os
client_id = os.getenv("ASPOSE_CLIENT_ID")
client_secret = os.getenv("ASPOSE_CLIENT_SECRET")
SDK’erne vil bruge disse værdier til at godkende mod Aspose Cloud‑tjenesterne. Når miljøet er klar, kan vi gå videre til implementeringen.
Sammenlign tekst i Word-dokumenter i Python: Trin-for-trin gennemgang
Trin 1: Indlæs kilde‑dokumentet
Først skal du konfigurere dine Aspose Cloud-legitimationsoplysninger, så SDK’en kan godkende, og du kan sammenligne tekst i Word-dokumenter i Python.
from asposewordscloud import WordsApi, Configuration
config = Configuration(client_id=client_id, client_secret=client_secret)
words_api = WordsApi(config)
Trin 2: Upload kilde- og måldokumenter
Upload de to DOCX filer, som du vil sammenligne. Hjælpefunktionen abstraherer uploadprocessen.
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")
Trin 3: Indstil sammenligningsindstillinger
Derefter skal du indstille CompareOptions for at definere, hvordan SDK’en skal sammenligne tekst i Word-dokumenter i Python, f.eks. ved at ignorere store/små bogstaver eller kommentarer.
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"
)
Trin 4: Udfør dokumentsammenligning
Kald nu compare_document‑metoden for faktisk at sammenligne tekst i Word‑dokumenter i Python og generere et revisionssporet resultat.
compare_result = words_api.compare_document(
request={
"name": "doc1.docx",
"compare_data": compare_opts,
"folder": "TempCompare"
}
)
Trin 5: Hent og gem resultat
Endelig skal du skrive det resulterende dokument til disken og rydde op i de midlertidige filer.
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"})
Sammenlign tekst i Word-dokumenter i Python fuld implementering - komplet kodeeksempel
Den følgende kode demonstrerer den komplette arbejdsgang for at sammenligne tekst i Word‑dokumenter i Python ved hjælp af 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}"})
Bemærk: Dette kodeeksempel demonstrerer kernefunktionaliteten. Før du bruger det i dit projekt, skal du sikre dig, at du opdaterer alle filstier og konfigurationsværdier, så de matcher dit faktiske miljø, bekræfter at alle nødvendige afhængigheder er korrekt installeret, og tester grundigt i dit udviklingsmiljø. Hvis du støder på problemer, så se venligst den officielle dokumentation eller kontakt supportteamet for assistance.
Udførelse af dokument sammenligning via REST API ved hjælp af cURL
Nedenfor er cURL‑kommandoer, der udfører den samme tekstsammenligning i Word‑dokumenter i Python‑operation via REST API’en.
- Godkend og hent adgangstoken
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"
- Upload kildefilen
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"
- Upload målfilen
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"
- Udfør sammenligningen
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
- Download outputfilen
curl -X GET "https://api.aspose.cloud/v4.0/words/TempCompare/compare_result.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o compare_result.docx
For flere detaljer om anmodningskroppe og yderligere parametre, se den officielle API-dokumentation.
Konklusion
Denne artikel demonstrerede, hvordan man sammenligner tekst i Word-dokumenter i Python ved hjælp af Aspose.BarCode Cloud SDK for Python. Ved at følge trinnene for at konfigurere legitimationsoplysninger, uploade filer, konfigurere sammenligningsindstillinger og kalde compare‑API’en kan du automatisere dokument‑diff‑arbejdsprocesser i dine applikationer. Husk at skaffe en korrekt licens til produktionsbrug; en midlertidig licens er tilgængelig på midlertidig licensside, og fulde licensoplysninger er angivet på produktsiden. Med disse værktøjer bliver integration af dokument‑sammenligning i dine Python‑projekter enkel og pålidelig.
FAQs
-
Hvordan hjælper Aspose.BarCode Cloud SDK for Python mig med at sammenligne tekst i Word-dokumenter i Python?
SDK’en fungerer sammen med Aspose.Words Cloud SDK for Python til at uploade DOCX-filer, indstille sammenligningsindstillinger og generere et revisionssporet resultat, der fremhæver forskelle. Se produktets side for Aspose.BarCode Cloud SDK for Python. -
Kan jeg sammenligne store Word-filer effektivt?
Ja. Ved at brugecompare_documentAPI’et kan du streame store DOCX-filer fra Aspose Cloud-lagring, og tjenesten behandler dem på serversiden, hvilket minimerer hukommelsesforbruget på din maskine. Se den officielle dokumentation for ydeevnetips. -
Hvilke filformater understøttes til sammenligning?
API’en arbejder primært med DOCX-filer, men du kan også sammenligne DOC filer efter de er konverteret til DOCX ved hjælp af Aspose.Words. Alle formatnavne er skrevet med store bogstaver, f.eks. DOCX, PDF. -
Skal jeg have en licens for at køre dette i produktion?
En midlertidig licens er tilgængelig på den midlertidige licensside. Til produktionsbrug bør du købe en fuld licens som beskrevet på produktsiden.