Birden çok MS Word belgesini birleştirmek, çeşitli senaryolarda yararlı olabilir. Örneğin, benzer türdeki belgeleri tek bir dosyada tutmak, birden çok belgeyi paylaşmadan önce birleştirmek vb. MS Word belgelerini oldukça kolay bir şekilde birleştirmenize izin veren çeşitli çevrimiçi araçlar mevcuttur, ancak bu özelliği kendi uygulamanıza eklemek isterseniz ne olur? Bunu başarmanız için size ASP.NET web uygulamalarınızda C# kullanarak MS Word (DOC/DOCX) belgelerini nasıl birleştireceğinizi göstereceğim. Bu Word Belge Birleştirme uygulaması aşağıdaki özelliklere sahip olacaktır:
- MS Word Belgelerini Tek Bir Belgede Birleştirin
- Birleştirilmiş Word Belgelerini DOCX Formatında İndirin
- Birleştirilmiş Word Belgelerini PDF Formatında İndirin
ASP.NET’te MS Word Belgelerini Birleştirmek için .NET API
Aspose.Words for .NET, MS Word belgelerini kolaylıkla işlemenizi sağlayan, zengin özelliklere sahip bir kelime işleme API’sidir. Ayrıca, birden çok Word belgesini ASP.NET veya herhangi bir .NET/.NET Core uygulamasında tek bir belgede birleştirmenize olanak tanır. Aspose.Words for .NET, NuGet kullanılarak kurulabileceği gibi bir DLL dosyası olarak indirilebilir.
PM> install-package Aspose.Words
ASP.NET’te MS Word Belgelerini Birleştirme
Aşağıda, MS Office/Word kullanmadan iki veya daha fazla Word (DOC/DOCX) belgesini birleştirmenize izin verecek bir ASP.NET uygulaması oluşturma adımları yer almaktadır.
- Visual Studio’da bir ASP.NET Core Web Uygulaması oluşturun.
- Şablon listesinden Web Uygulamasını (Model-View-Controller) seçin.
- Aspose.Words for .NET’i NuGet Paket Yöneticisinden veya Paket Yöneticisi Konsolundan kurun.
- Aşağıdaki komut dosyasını index.cshtml dosyanıza ekleyin.
@{
ViewData["Title"] = "Merge MS Word Documents in ASP.NET";
}
<div class="row">
<div class="col-md-12" align="center">
<h2 class="text-info">Merge Two or More Word DOC/DOCX Documents</h2>
<p class="text-info">Merge MS Word documents and get the results in DOCX or PDF format.</p>
</div>
</div>
<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-12" align="center">
<div>
<input type="file" id="input-id" name="files" multiple accept=".doc, .docx" class="form-control file" data-preview-file-type="text" />
</div>
</div>
</div>
<hr />
<div class="row">
<div class="col-md-12" align="center">
<div class="input-group-lg">
<strong>Save As</strong>
<select name="outputFormat" class="form-control">
<option value="DOCX">DOCX</option>
<option value="PDF">PDF</option>
</select>
<button type="submit" class="form-control btn btn-success">Merge and Download</button>
</div>
</div>
</div>
</form>
<script>
// Eklenti seçeneklerini sürükleyip bırakın
$("#input-id").fileinput({ 'mainClass': "input-group-lg", 'showBrowse': true, 'showUpload': false, 'previewFileType': 'any', 'showClose': false, 'maxFileCount': 5, });
</script>
- Aşağıdaki kodu HomeController.cs sınıfınıza ekleyin.
public FileResult UploadFiles(List<IFormFile> files, string outputFormat)
{
if (files.Count() <= 1)
{
// biraz mesaj göster
return null;
}
string fileName = "merged-document.docx";
string path = "wwwroot/uploads";
List<Document> documents = new List<Document>();
// dosyaları yükle
foreach (IFormFile file in files)
{
string filePath = Path.Combine(path, file.FileName);
// Dosyaları kaydet
using (var stream = new FileStream(filePath, FileMode.Create))
{
file.CopyTo(stream);
}
// Tüm belgeleri listeye ekle
documents.Add(new Document(filePath));
}
// İlk Word belgesini yükle
Document doc1 = documents[0];
for (int i = 1; i < documents.Count(); i++)
{
// Word belgelerini birleştirme
doc1.AppendDocument(documents[i], ImportFormatMode.KeepSourceFormatting);
}
var outputStream = new MemoryStream();
if (outputFormat == "DOCX")
{
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
{
fileName = "merged-document.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);
}
}
- Aşağıdaki sürükle ve bırak eklentisinin JS ve CSS dosyalarını layout.cshtml dosyasının baş etiketi içine 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ınızda çalıştırın.
İndirmek
ASP.NET Word Document Merger uygulamasının kaynak kodunu buradan indirin.
Aspose.Words for .NET’i Ücretsiz Deneyin
Aspose.Words for .NET’i ücretsiz olarak denemek için geçici lisansınızı (30 günlük eksiksiz bir lisans) alın.