השווה בין מסמכי Word ב-ASP.NET

לעתים קרובות אנו צריכים להשוות בין שני מסמכי MS Word DOC/DOCX כדי לבדוק את הדמיון או ההבדלים. ההשוואה נותנת לנו מושג מה השתנה בשתי הגרסאות של מסמך וורד בודד. יישומים שונים השוואת מסמכים מקוונת זמינים המאפשרים לך להשוות בין שני מסמכי Word. עם זאת, יכול להיות מקרה שבו אתה צריך לשלב תכונות השוואת מסמכים בתוך יישום האינטרנט שלך. מצד שני, ייתכן שתרצה לבנות אפליקציית השוואת מסמכים מקוונת משלך. כדי להתמודד עם מקרים כאלה, אני אראה לך כיצד להשוות שני Word DOCX באמצעות C# בתוך יישום האינטרנט של ASP.NET. ליישום זה יהיו התכונות הבאות.

  • C# .NET API להשוואת מסמכי Word DOCX
  • השווה בין שני מסמכי Word (DOC/DOCX) ב-C#
  • הורד את תוצאת ההשוואה בפורמט DOCX
  • הורד את תוצאת ההשוואה בפורמט PDF

C# .NET API להשוואת Word DOCX

כדי לבצע את ההשוואה של מסמכי Word ללא MS Office, נשתמש ב-Aspose.Words for .NET שהוא ממשק API רב עוצמה לעיבוד תמלילים עבור ASP.NET או יישומי .NET/.NET Core אחרים. אתה יכול להוריד API או להתקין אותו בתוך אפליקציית ASP.NET שלך באמצעות NuGet.

PM> Install-Package Aspose.Words

השווה בין שני מסמכי Word ב-C# ASP.NET

  • צור יישום אינטרנט חדש של ASP.NET Core ב-Visual Studio 2017 ואילך.
צור יישום אינטרנט ליבה של ASP.NET
  • בחר את התבנית של יישום אינטרנט (Model-View-Controller).
בחר יישום MVC
  • התקן את חבילת Aspose.Words for NET באמצעות NuGet Package Manager.
.NET API עבור השוואת Word
  • העתק והדבק את הסקריפט הבא בתצוגת 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> 
    // גרור ושחרר אפשרויות תוסף
    $("#input-id").fileinput({ 'showUpload': false, 'previewFileType': 'any', 'showClose': false });
    $("#input-id2").fileinput({ 'showUpload': false, 'previewFileType': 'any', 'showClose': false });
</script>
  • העתק והדבק את השיטה הבאה בבקר HomeController.cs.
[HttpPost]
public FileResult UploadFiles(List<IFormFile> files, string outputFormat)
{
	if(files.Count()==0)
	{
		return null;
	}
	string fileName = "result.docx";
	// העלה קבצים
	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
	Document doc1 = new Document(file1);
	Document doc2 = new Document(file2);
	// הגדר תכונות השוואה
	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
	doc1.Compare(doc2, "John Doe", DateTime.Now, compareOptions);
	if (outputFormat == "DOCX")
	{
		// תוצאה להשוואה ב-DOCX
		doc1.Save(outputStream, SaveFormat.Docx);
		outputStream.Position = 0;
		// החזר קובץ Word שנוצר
		return File(outputStream, System.Net.Mime.MediaTypeNames.Application.Rtf, fileName);
	}
	else
	{
		// תוצאה להשוואה ב-PDF
		fileName = "result.pdf";
		doc1.Save(outputStream, SaveFormat.Pdf);
		outputStream.Position = 0;
		// החזר קובץ PDF שנוצר
		return File(outputStream, System.Net.Mime.MediaTypeNames.Application.Pdf, fileName);
	}    
}
  • הכנס את קובצי ה-CSS וה-JS הבאים של תוסף גרירה ושחרור בתג head של תצוגת 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-->
  • בנה את האפליקציה והפעל בדפדפן.

C# ASP.NET Word DOCX Comparison App - הדגמה

להלן ההדגמה כיצד להשוות בין שני מסמכי Word באמצעות יישום השוואת המסמכים C# ASP.NET שלנו.

השווה את Word DOCX ב-ASP.NET

השוואת Word DOCX ב-ASP.NET

הורד את אפליקציית השוואת C# ASP.NET DOCX

אתה יכול להוריד את קוד המקור המלא של אפליקציית השוואת מסמכים של ASP.NET Word מכאן.

אודות Aspose.Words עבור NET

נסה את Aspose.Words עבור NET בחינם

Aspose מציעה רישיון זמני לנסות ממשקי API של Aspose בחינם. קבל את שלך להעריך את Aspose.Words עבור .NET.

מאמר קשור