ما اغلب نیاز به مقایسه دو سند MS Word DOC/DOCX داریم تا شباهت ها یا تفاوت ها را بررسی کنیم. مقایسه به ما ایده ای از آنچه در دو نسخه یک سند Word تغییر کرده است، می دهد. برنامه های مختلف مقایسه اسناد آنلاین در دسترس هستند که به شما امکان می دهند دو سند Word را مقایسه کنید. با این حال، ممکن است موردی وجود داشته باشد که شما نیاز به ادغام ویژگی های مقایسه اسناد در برنامه وب خود داشته باشید. از سوی دیگر، ممکن است بخواهید اپلیکیشن مقایسه اسناد آنلاین خود را بسازید. برای مقابله با چنین مواردی، من به شما نشان خواهم داد که چگونه دو Word DOCX را با استفاده از C# در برنامه وب ASP.NET مقایسه کنید. این اپلیکیشن دارای ویژگی های زیر خواهد بود.
- C# .NET API برای مقایسه اسناد Word DOCX
- مقایسه دو سند Word (DOC/DOCX) در سی شارپ
- نتیجه مقایسه را با فرمت DOCX دانلود کنید
- نتیجه مقایسه را با فرمت PDF دانلود کنید
C# .NET API برای مقایسه Word DOCX
برای انجام مقایسه اسناد Word بدون MS Office، از Aspose.Words for .NET استفاده می کنیم که یک API پردازش کلمه قدرتمند برای ASP.NET یا دیگر برنامه های NET/.NET Core است. میتوانید API 3 را دانلود کنید یا با استفاده از NuGet در برنامه ASP.NET خود نصب کنید.
PM> Install-Package Aspose.Words
مقایسه دو سند ورد در سی شارپ ASP.NET
- یک ASP.NET Core Web Application جدید در Visual Studio 2017 یا جدیدتر ایجاد کنید.
- الگوی Web Application (Model-View-Controller) را انتخاب کنید.
- با استفاده از NuGet Package Manager بسته Aspose.Words را برای دات نت نصب کنید.
- اسکریپت زیر را در نمای 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 افزونه drag and drop را در تگ 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 - نسخه نمایشی
در زیر نحوه مقایسه دو سند Word با استفاده از برنامه مقایسه اسناد C# ASP.NET ما نشان داده شده است.
برنامه مقایسه C# ASP.NET DOCX را دانلود کنید
می توانید کد منبع کامل برنامه مقایسه اسناد ASP.NET Word را از اینجا دانلود کنید.
درباره Aspose.Words برای دات نت
Aspose.Words را برای دات نت به صورت رایگان امتحان کنید
Aspose یک مجوز موقت را برای آزمایش API های Aspose به صورت رایگان ارائه می دهد. ارزیابی Aspose.Words را برای دات نت دریافت کنید.