Word Belgelerini Birleştirme ASP.NET

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.
ASP.NET Çekirdek Web Uygulaması Oluşturma
  • Şablon listesinden Web Uygulamasını (Model-View-Controller) seçin.
MVC Uygulamasını Seçin
  • Aspose.Words for .NET’i NuGet Paket Yöneticisinden veya Paket Yöneticisi Konsolundan kurun.
Kelime Karşılaştırması için .NET API
  • 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.
ASP.NET Word Belgesi Birleştirme

İ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.

İlgili Makale