Wir müssen oft zwei MS Word DOC/DOCX Dokumente vergleichen, um die Ähnlichkeiten oder Unterschiede zu überprüfen. Der Vergleich gibt uns eine Vorstellung davon, was in den beiden Versionen eines einzigen Word Dokuments geändert wurde. Es sind verschiedene Online Dokumentenvergleich Anwendungen verfügbar, mit denen Sie zwei Word Dokumente vergleichen können. Es kann jedoch vorkommen, dass Sie Dokumentvergleichsfunktionen in Ihre Webanwendung integrieren müssen. Andererseits möchten Sie vielleicht Ihre eigene App zum Online Dokumentenvergleich erstellen. Um mit solchen Fällen fertig zu werden, zeige ich Ihnen, wie Sie zwei Word Dokumente mit C# in einer ASP.NET Webanwendung vergleichen. Diese Anwendung wird die folgenden Funktionen haben.
- Vergleichen Sie zwei Word Dokumente (DOC/DOCX).
- Laden Sie das Vergleichsergebnis im DOCX Format herunter
- Laden Sie das Vergleichsergebnis im PDF Format herunter
.NET API zum Vergleichen von Word Dokumenten
Um den Vergleich der Word Dokumente ohne MS Office durchzuführen, verwenden wir Aspose.Words for .NET, eine leistungsstarke Textverarbeitungs-API für ASP.NET oder andere .NET/.NET Core Anwendungen. Sie können die API herunterladen oder sie mit NuGet in Ihrer ASP.NET Anwendung installieren.
PM> Install-Package Aspose.Words
Vergleichen Sie zwei Word Dokumente in C# ASP.NET
- Erstellen Sie eine neue ASP.NET Core Webanwendung in Visual Studio 2017 oder höher.
- Wählen Sie die Vorlage Webanwendung (Model-View-Controller) aus.
- Installieren Sie das Aspose.Words for .NET-Paket mit dem NuGet Paket Manager.
- Kopieren Sie das folgende Skript und fügen Sie es in die Ansicht „index.cshtml“ ein.
@{
ViewData["Title"] = "MS Word Comparison in ASP.NET";
}
<h2 class="text-info">Compare Two Word DOC/DOCX Documents</h2>
<p class="text-info">Compare the contents of MS Word documents and get the results in DOCX or PDF format.</p>
<br />
<form asp-controller="Home" asp-action="UploadFiles" method="post" class="form-inline dropzone" enctype="multipart/form-data">
<div class="row">
<div class="col-md-6" align="center">
<div class="form-group">
<input type="file" id="input-id" name="files" accept=".doc, .docx" class="form-control file" data-preview-file-type="text" />
</div>
</div>
<div class="col-md-6" align="center">
<div class="form-group">
<input type="file" id="input-id2" name="files" accept=".doc, .docx" class="form-control file" />
</div>
</div>
</div>
<br />
<div class="row">
<div class="col-md-12" align="center">
<div class="form-group">
<p class="text-info">
<strong>Output format:</strong>
<select name="outputFormat" class="form-control">
<option value="DOCX">DOCX</option>
<option value="PDF">PDF</option>
</select>
</p>
</div>
<div class="col-md-12" align="center">
<div class="form-group">
<button type="submit" class="form-control btn btn-success">Compare and Download</button>
</div>
</div>
</div>
</div>
</form>
<script>
// Drag-and-Drop-Plugin-Optionen
$("#input-id").fileinput({ 'showUpload': false, 'previewFileType': 'any', 'showClose': false });
$("#input-id2").fileinput({ 'showUpload': false, 'previewFileType': 'any', 'showClose': false });
</script>
- Kopieren Sie die folgende Methode, und fügen Sie sie in den HomeController.cs-Controller ein.
[HttpPost]
public FileResult UploadFiles(List<IFormFile> files, string outputFormat)
{
if(files.Count()==0)
{
return null;
}
string fileName = "result.docx";
// Daten hochladen
var file1 = Path.Combine("wwwroot/uploads", files[0].FileName);
var file2 = Path.Combine("wwwroot/uploads", files[1].FileName);
using (var stream = new FileStream(file1, FileMode.Create))
{
files[0].CopyTo(stream);
}
using (var stream = new FileStream(file2, FileMode.Create))
{
files[1].CopyTo(stream);
}
// Laden Sie Word Dokumente
Document doc1 = new Document(file1);
Document doc2 = new Document(file2);
// Vergleichsfunktionen festlegen
CompareOptions compareOptions = new CompareOptions();
compareOptions.IgnoreFormatting = true;
compareOptions.IgnoreCaseChanges = true;
compareOptions.IgnoreComments = true;
compareOptions.IgnoreTables = true;
compareOptions.IgnoreFields = true;
compareOptions.IgnoreFootnotes = true;
compareOptions.IgnoreTextboxes = true;
compareOptions.IgnoreHeadersAndFooters = true;
compareOptions.Target = ComparisonTargetType.New;
var outputStream = new MemoryStream();
// Vergleichen Sie Word Dokumente
doc1.Compare(doc2, "John Doe", DateTime.Now, compareOptions);
if (outputFormat == "DOCX")
{
// Zum Vergleich Ergebnis in DOCX
doc1.Save(outputStream, SaveFormat.Docx);
outputStream.Position = 0;
// Generierte Word Datei zurückgeben
return File(outputStream, System.Net.Mime.MediaTypeNames.Application.Rtf, fileName);
}
else
{
// Zum Vergleichsergebnis als PDF
fileName = "result.pdf";
doc1.Save(outputStream, SaveFormat.Pdf);
outputStream.Position = 0;
// Generierte PDF Datei zurückgeben
return File(outputStream, System.Net.Mime.MediaTypeNames.Application.Pdf, fileName);
}
}
- Fügen Sie die folgenden CSS und JS Dateien des Drag-and-Drop-Plugins in das Head-Tag der \layout.cshtml-Ansicht ein.
<!--drag and drop file plugin-->
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/5.0.9/css/fileinput.min.css" media="all" rel="stylesheet" type="text/css" />
<script src="https://code.jquery.com/jquery-3.3.1.min.js" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-fileinput/5.0.9/js/fileinput.min.js"></script>
<!--end of drag and drop-->
- Erstellen Sie die Anwendung und führen Sie sie im Browser aus.
ASP.NET Word Dokumentvergleichs-App – Demo
Im Folgenden wird demonstriert, wie Sie zwei Word Dokumente mit unserer ASP.NET-Dokumentvergleichsanwendung vergleichen.
Download
Sie können den vollständigen Quellcode der ASP.NET Word Dokumentenvergleichsanwendung hier herunterladen.
Über Aspose.Words for .NET
Probieren Sie Aspose.Words for .NET kostenlos aus
Aspose bietet eine vorübergehende Lizenz zum kostenlosen Testen von Aspose-APIs an. Holen Sie sich Ihre, um Aspose.Words for .NET zu testen.