Porovnejte dokumenty aplikace Word v ASP.NET

Často potřebujeme porovnat dva dokumenty MS Word DOC/DOCX, abychom zkontrolovali podobnosti nebo rozdíly. Srovnání nám dává představu o tom, co se změnilo ve dvou verzích jednoho dokumentu aplikace Word. K dispozici jsou různé online porovnání dokumentů aplikace, které umožňují porovnat dva dokumenty Wordu. Může však nastat případ, kdy potřebujete integrovat funkce porovnávání dokumentů do vaší webové aplikace. Na druhou stranu si možná budete chtít vytvořit vlastní online aplikaci pro porovnávání dokumentů. Abychom se vypořádali s takovými případy, ukážu vám, jak porovnat dva Word DOCX pomocí C# v rámci webové aplikace ASP.NET. Tato aplikace bude mít následující funkce.

  • C# .NET API pro porovnání dokumentů Word DOCX
  • Porovnejte dva dokumenty Word (DOC/DOCX) v C#
  • Stáhněte si výsledek srovnání ve formátu DOCX
  • Stáhněte si výsledek srovnání ve formátu PDF

C# .NET API pro porovnání Word DOCX

K porovnání dokumentů Wordu bez MS Office použijeme Aspose.Words for .NET, což je výkonné rozhraní API pro zpracování textu pro ASP.NET nebo jiné aplikace .NET/.NET Core. Můžete si stáhnout API nebo jej nainstalovat do své aplikace ASP.NET pomocí NuGet.

PM> Install-Package Aspose.Words

Porovnejte dva dokumenty Word v C# ASP.NET

  • Vytvořte novou webovou aplikaci ASP.NET Core v sadě Visual Studio 2017 nebo novější.
Vytvořte webovou aplikaci ASP.NET Core
  • Vyberte šablonu webové aplikace (Model-View-Controller).
Vyberte Aplikace MVC
  • Nainstalujte balíček Aspose.Words for .NET pomocí Správce balíčků NuGet.
.NET API for Word Comparison
  • Zkopírujte a vložte následující skript do zobrazení index.cshtml.
@{
    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> 
    // Možnosti pluginu přetáhněte
    $("#input-id").fileinput({ 'showUpload': false, 'previewFileType': 'any', 'showClose': false });
    $("#input-id2").fileinput({ 'showUpload': false, 'previewFileType': 'any', 'showClose': false });
</script>
  • Zkopírujte a vložte následující metodu do ovladače HomeController.cs.
[HttpPost]
public FileResult UploadFiles(List<IFormFile> files, string outputFormat)
{
	if(files.Count()==0)
	{
		return null;
	}
	string fileName = "result.docx";
	// Nahrát soubory
	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);
	}
	// Načtěte dokumenty aplikace Word
	Document doc1 = new Document(file1);
	Document doc2 = new Document(file2);
	// Nastavte funkce porovnání
	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();
	// Porovnejte dokumenty aplikace Word
	doc1.Compare(doc2, "John Doe", DateTime.Now, compareOptions);
	if (outputFormat == "DOCX")
	{
		// Pro srovnání výsledek v DOCX
		doc1.Save(outputStream, SaveFormat.Docx);
		outputStream.Position = 0;
		// Vraťte vygenerovaný soubor Word
		return File(outputStream, System.Net.Mime.MediaTypeNames.Application.Rtf, fileName);
	}
	else
	{
		// Pro srovnání výsledek v PDF
		fileName = "result.pdf";
		doc1.Save(outputStream, SaveFormat.Pdf);
		outputStream.Position = 0;
		// Vrátit vygenerovaný soubor PDF
		return File(outputStream, System.Net.Mime.MediaTypeNames.Application.Pdf, fileName);
	}    
}
  • Vložte následující soubory CSS a JS zásuvného modulu drag and drop do značky head v zobrazení layout.cshtml.
<!--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-->
  • Sestavte aplikaci a spusťte ji v prohlížeči.

C# ASP.NET Word srovnávací aplikace DOCX – ukázka

Následuje ukázka, jak porovnat dva dokumenty aplikace Word pomocí naší aplikace pro porovnání dokumentů C# ASP.NET.

Porovnejte Word DOCX v ASP.NET

Porovnání Word DOCX v ASP.NET

Stáhněte si porovnávací aplikaci C# ASP.NET DOCX

Úplný zdrojový kód aplikace pro porovnávání dokumentů ASP.NET Word si můžete stáhnout zde.

O Aspose.Words for .NET

Vyzkoušejte Aspose.Words for .NET zdarma

Aspose nabízí dočasnou licenci k vyzkoušení Aspose API zdarma. Získejte své k hodnocení Aspose.Words for .NET.

Související článek