Vergleichen Sie Word Dokumente in ASP.NET

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.
Erstellen Sie eine ASP.NET Core Webanwendung
  • Wählen Sie die Vorlage Webanwendung (Model-View-Controller) aus.
Wählen Sie MVC Anwendung aus
  • Installieren Sie das Aspose.Words for .NET-Paket mit dem NuGet Paket Manager.
.NET API für den Wortvergleich
  • 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.

Vergleichen Sie Word DOCX in ASP.NET

Vergleich von Word DOCX in ASP.NET

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.

Verwandter Artikel