Bandingkan Dokumen Word di ASP.NET

Kita sering perlu membandingkan dua dokumen MS Word DOC/DOCX untuk memeriksa persamaan atau perbedaannya. Perbandingan tersebut memberi kita gambaran tentang apa yang telah diubah dalam dua versi dari satu dokumen Word. Berbagai perbandingan dokumen online aplikasi tersedia yang memungkinkan Anda membandingkan dua dokumen Word. Namun, mungkin ada kasus ketika Anda perlu mengintegrasikan fitur perbandingan dokumen dalam aplikasi web Anda. Di sisi lain, Anda mungkin ingin membangun aplikasi perbandingan dokumen online Anda sendiri. Untuk menangani kasus seperti itu, saya akan menunjukkan cara membandingkan dua Word DOCX menggunakan C# dalam aplikasi web ASP.NET. Aplikasi ini akan memiliki fitur-fitur berikut.

  • C# .NET API untuk Membandingkan Dokumen Word DOCX
  • Bandingkan dua dokumen Word (DOC/DOCX) di C#
  • Unduh hasil perbandingan dalam format DOCX
  • Unduh hasil perbandingan dalam format PDF

C# .NET API untuk Membandingkan Word DOCX

Untuk melakukan perbandingan dokumen Word tanpa MS Office, kami akan menggunakan Aspose.Words for .NET yang merupakan API pengolah kata yang ampuh untuk ASP.NET atau aplikasi .NET/.NET Core lainnya. Anda dapat mengunduh API atau menginstalnya di dalam aplikasi ASP.NET Anda menggunakan NuGet.

PM> Install-Package Aspose.Words

Bandingkan Dua Dokumen Word di C# ASP.NET

  • Buat Aplikasi Web Inti ASP.NET baru di Visual Studio 2017 atau lebih baru.
Buat Aplikasi Web Inti ASP.NET
  • Pilih template Aplikasi Web (Model-View-Controller).
Pilih Aplikasi MVC
  • Instal paket Aspose.Words for .NET menggunakan NuGet Package Manager.
.NET API untuk Perbandingan Kata
  • Salin dan tempel skrip berikut dalam tampilan 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> 
    // Seret dan lepas opsi plugin
    $("#input-id").fileinput({ 'showUpload': false, 'previewFileType': 'any', 'showClose': false });
    $("#input-id2").fileinput({ 'showUpload': false, 'previewFileType': 'any', 'showClose': false });
</script>
  • Salin dan tempel metode berikut di pengontrol HomeController.cs.
[HttpPost]
public FileResult UploadFiles(List<IFormFile> files, string outputFormat)
{
	if(files.Count()==0)
	{
		return null;
	}
	string fileName = "result.docx";
	// Unggah berkas
	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);
	}
	// Muat dokumen Word
	Document doc1 = new Document(file1);
	Document doc2 = new Document(file2);
	// Tetapkan fitur perbandingan
	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();
	// Bandingkan dokumen Word
	doc1.Compare(doc2, "John Doe", DateTime.Now, compareOptions);
	if (outputFormat == "DOCX")
	{
		// Untuk hasil perbandingan di DOCX
		doc1.Save(outputStream, SaveFormat.Docx);
		outputStream.Position = 0;
		// Kembalikan file Word yang dihasilkan
		return File(outputStream, System.Net.Mime.MediaTypeNames.Application.Rtf, fileName);
	}
	else
	{
		// Untuk hasil perbandingan dalam PDF
		fileName = "result.pdf";
		doc1.Save(outputStream, SaveFormat.Pdf);
		outputStream.Position = 0;
		// Kembalikan file PDF yang dihasilkan
		return File(outputStream, System.Net.Mime.MediaTypeNames.Application.Pdf, fileName);
	}    
}
  • Masukkan file CSS dan JS plugin drag and drop berikut di tag head tampilan 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-->
  • Bangun aplikasi dan jalankan di browser.

Aplikasi Perbandingan C# ASP.NET Word DOCX - Demo

Berikut ini adalah demonstrasi cara membandingkan dua dokumen Word menggunakan aplikasi perbandingan dokumen C# ASP.NET kami.

Bandingkan Word DOCX di ASP.NET

Membandingkan Word DOCX di ASP.NET

Unduh Aplikasi Perbandingan C# ASP.NET DOCX

Anda dapat mengunduh kode sumber lengkap aplikasi perbandingan dokumen ASP.NET Word dari di sini.

Tentang Aspose.Words for .NET

Coba Aspose.Words for .NET Gratis

Aspose menawarkan lisensi sementara untuk mencoba Aspose API secara gratis. Dapatkan milik Anda untuk mengevaluasi Aspose.Words for .NET.

Artikel Terkait