ASP.NET'te Word Belgelerini Karşılaştırın

Benzerlikleri veya farklılıkları kontrol etmek için genellikle iki MS Word DOC/DOCX belgesini karşılaştırmamız gerekir. Karşılaştırma bize, tek bir Word belgesinin iki versiyonunda nelerin değiştiği hakkında bir fikir veriyor. İki Word belgesini karşılaştırmanıza izin veren çeşitli çevrimiçi belge karşılaştırma uygulamaları mevcuttur. Ancak, belge karşılaştırma özelliklerini web uygulamanıza entegre etmeniz gereken durumlar olabilir. Öte yandan, kendi çevrimiçi belge karşılaştırma uygulamanızı oluşturmak isteyebilirsiniz. Bu tür durumlarla başa çıkmak için size ASP.NET web uygulamasında C# kullanarak iki Word DOCX’i nasıl karşılaştıracağınızı göstereceğim. Bu uygulama aşağıdaki özelliklere sahip olacaktır.

  • Word DOCX Belgelerini Karşılaştırmak için C# .NET API
  • C# dilinde iki Word (DOC/DOCX) belgesini karşılaştırın
  • Karşılaştırma sonucunu DOCX formatında indirin
  • Karşılaştırma sonucunu PDF formatında indirin

Word DOCX’i Karşılaştırmak İçin C# .NET API’si

MS Office olmadan Word belgelerinin karşılaştırmasını yapmak için, ASP.NET veya diğer .NET/.NET Core uygulamaları için güçlü bir kelime işleme API’si olan Aspose.Words for .NET kullanacağız. API’yi indirebilir veya NuGet kullanarak ASP.NET uygulamanıza yükleyebilirsiniz.

PM> Install-Package Aspose.Words

C# ASP.NET’te İki Word Belgesini Karşılaştırın

  • Visual Studio 2017 veya sonrasında yeni bir ASP.NET Core Web Uygulaması oluşturun.
ASP.NET Çekirdek Web Uygulaması Oluşturma
  • Web Uygulaması (Model-View-Controller) şablonunu seçin.
MVC Uygulamasını Seçin
  • Aspose.Words for .NET paketini NuGet Paket Yöneticisi’ni kullanarak kurun.
Kelime Karşılaştırması için .NET API
  • Aşağıdaki betiği kopyalayıp index.cshtml görünümüne yapıştırın.
@{
    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> 
    // Eklenti seçeneklerini sürükleyip bırakın
    $("#input-id").fileinput({ 'showUpload': false, 'previewFileType': 'any', 'showClose': false });
    $("#input-id2").fileinput({ 'showUpload': false, 'previewFileType': 'any', 'showClose': false });
</script>
  • Aşağıdaki yöntemi kopyalayıp HomeController.cs denetleyicisine yapıştırın.
[HttpPost]
public FileResult UploadFiles(List<IFormFile> files, string outputFormat)
{
	if(files.Count()==0)
	{
		return null;
	}
	string fileName = "result.docx";
	// Dosyaları yükle
	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);
	}
	// Word belgelerini yükle
	Document doc1 = new Document(file1);
	Document doc2 = new Document(file2);
	// Karşılaştırma özelliklerini ayarla
	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();
	// Word belgelerini karşılaştırın
	doc1.Compare(doc2, "John Doe", DateTime.Now, compareOptions);
	if (outputFormat == "DOCX")
	{
		// DOCX'te karşılaştırma sonucu için
		doc1.Save(outputStream, SaveFormat.Docx);
		outputStream.Position = 0;
		// Oluşturulan Word dosyasını döndür
		return File(outputStream, System.Net.Mime.MediaTypeNames.Application.Rtf, fileName);
	}
	else
	{
		// PDF olarak karşılaştırma sonucu için
		fileName = "result.pdf";
		doc1.Save(outputStream, SaveFormat.Pdf);
		outputStream.Position = 0;
		// Oluşturulan PDF dosyasını döndür
		return File(outputStream, System.Net.Mime.MediaTypeNames.Application.Pdf, fileName);
	}    
}
  • Sürükle ve bırak eklentisinin aşağıdaki CSS ve JS dosyalarını layout.cshtml görünümünün baş etiketine ekleyin.
<!--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-->
  • Uygulamayı oluşturun ve tarayıcıda çalıştırın.

C# ASP.NET Word DOCX Karşılaştırma Uygulaması - Demo

Aşağıda, C# ASP.NET belge karşılaştırma uygulamamızı kullanarak iki Word belgesinin nasıl karşılaştırılacağının gösterimi yer almaktadır.

ASP.NET'te Word DOCX'i karşılaştırın

ASP.NET’te Word DOCX’i Karşılaştırma

C# ASP.NET DOCX Karşılaştırma Uygulamasını İndirin

ASP.NET Word belge karşılaştırma uygulamasının tam kaynak kodunu buradan indirebilirsiniz.

Aspose.Words for .NET Hakkında

Aspose.Words for .NET’i Ücretsiz Deneyin

Aspose, Aspose API’lerini ücretsiz olarak denemek için bir geçici lisans sunar. Aspose.Words for .NET’i değerlendirmek için sizinkini edinin.

İlgili Makale