Aspose.Words for .NET, çok sayıda .NET uygulamasında MS Word belgelerini işlemek ve dönüştürmek için eksiksiz bir özellik seti sağlar. Özellikle, masaüstü veya web uygulamalarında yeni Word belgeleri oluşturabilir veya mevcut Word belgelerini düzenleyebilirsiniz. Bu yazıda, size Aspose.Words for .NET’in Kelime işleme yeteneklerinden nasıl yararlanacağınızı ve ASP.NET MVC’de web tabanlı bir MS Word Düzenleyiciyi nasıl oluşturacağınızı göstereceğim.
ASP.NET MVC Word Editor - Word Belgeleri Oluşturun
Belgelerin içeriğini yazmak ve güncellemek için bir WYSIWYG HTML düzenleyicisini temel alacak bir ASP.NET MVC Word Düzenleyicisi oluşturacağız. Ayrıca Aspose.Words for .NET, Word belgesinin içeriğini HTML’ye dönüştürmek ve güncellenmiş içerikten Word belgeleri oluşturmak için kullanılacaktır.
ASP.NET MVC’de MS Word Düzenleyicisi Oluşturma Adımları
Gösterim için, bu uygulamada JavaScript tabanlı Suneditor WYSIWYG editörünü kullandım. Aynısını kullanabilir veya gereksinimlerinize uyan başka bir HTML düzenleyiciyi seçebilirsiniz. ASP.NET Word Düzenleyicisi oluşturmak için adımlar aşağıdadır.
- İlk olarak, Visual Studio’da yeni bir ASP.NET Core Web Uygulaması oluşturun.
- Web Uygulaması (Model-View-Controller) şablonunu seçin.
- WYSIWYG editörünün dosyalarını indirin ve wwwroot dizininde tutun.
- NuGet Paket Yöneticisi’ni açın ve Aspose.Words for .NET paketini kurun.
- Aşağıdaki betiği index.cshtml görünümüne ekleyin.
@{
ViewData["Title"] = "Word Editor in ASP.NET";
}
<div class="row">
<div class="col-md-12">
<form asp-controller="Home" asp-action="UploadFile" method="post" class="form-inline"
enctype="multipart/form-data">
<br />
<div class="form-group">
<input type="file" name="file" accept=".doc, .docx" class="form-control custom-file-input" />
</div>
<div class="form-group">
<button type="submit" class="form-control btn btn-primary">Open</button>
</div>
<div class="form-group" style="position:relative; float :right">
<button type="button" id="download" class="form-control btn btn-success" value="Save and Download">Save and Download</button>
</div>
</form>
<br />
<form method="post" asp-action="Index" id="formDownload">
<textarea name="editor" id="editor" rows="80" cols="100">
@if (ViewBag.HtmlContent == null)
{
<p>Write something or open an existing Word document. </p>
}
else
{
@ViewBag.HtmlContent;
}
</textarea>
</form>
</div>
</div>
<!-- suneditor -->
<link href="~/suneditor/dist/css/suneditor.min.css" rel="stylesheet">
<!-- suneditor -->
<script src="~/suneditor/dist/suneditor.min.js"></script>
<script>
var suneditor = SUNEDITOR.create('editor', {
display: 'block',
width: '100%',
height: '30%',
popupDisplay: 'full',
buttonList: [
['font', 'fontSize', 'formatBlock'],
['paragraphStyle', 'blockquote'],
['bold', 'underline', 'align', 'strike', 'subscript', 'superscript', 'horizontalRule', 'list'],
['table', 'link', 'image'],
['align', 'horizontalRule', 'list', 'lineHeight'],
['codeView']
],
placeholder: 'Start typing something...'
});
</script>
<script>
$(document).ready(function () {
$("#download").click(function () {
suneditor.save();
$("#formDownload").submit();
});
});
</script>
- HomeController.cs denetleyicisinde aşağıdaki yöntemleri ekleyin.
[HttpPost]
public FileResult Index(string editor)
{
try
{
// Benzersiz bir dosya adı oluşturun
string fileName = Guid.NewGuid() + ".docx";
// HTML metnini bayt dizisine dönüştürün
byte[] byteArray = Encoding.UTF8.GetBytes(editor.Contains("<html>") ? editor : "<html>" + editor + "</html>");
// HTML'den Word belgesi oluştur
MemoryStream stream = new MemoryStream(byteArray);
Document Document = new Document(stream);
// Word dosyası için bellek akışı oluştur
var outputStream = new MemoryStream();
Document.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);
}
catch (Exception exp)
{
return null;
}
}
[HttpPost]
public ViewResult UploadFile(IFormFile file)
{
// Dosya yolunu ayarla
var path = Path.Combine("wwwroot/uploads", file.FileName);
using (var stream = new FileStream(path, FileMode.Create))
{
file.CopyTo(stream);
}
// Word belgesini yükle
Document doc = new Document(path);
var outStream = new MemoryStream();
// HTML seçeneklerini ayarla
HtmlSaveOptions opt = new HtmlSaveOptions();
opt.ExportImagesAsBase64 = true;
opt.ExportFontsAsBase64 = true;
// Word belgesini HTML'ye dönüştürün
doc.Save(outStream, opt);
// Akıştan metin oku
outStream.Position = 0;
using(StreamReader reader = new StreamReader(outStream))
{
ViewBag.HtmlContent = reader.ReadToEnd();
}
return View("Index");
}
- Son olarak, uygulamayı favori tarayıcınızda oluşturun ve çalıştırın.
Demo
Aşağıda, ASP.NET Word Editor’da Word belgelerinin nasıl oluşturulacağı veya düzenleneceğinin gösterimi yer almaktadır.
ASP.NET’te bir Word Belgesi oluşturun
ASP.NET’te bir Word Belgesini Düzenleme
Kaynak Kodunu İndir
MS Word Editor kaynak kodunu buradan indirebilirsiniz.
Çözüm
Bu yazıda, ASP.NET’te MS Word belgelerinin nasıl oluşturulacağını öğrendiniz. Kod örnekleriyle birlikte adım adım kılavuz, ASP.NET MVC’de basit bir web tabanlı MS Word düzenleyicisinin nasıl oluşturulacağını göstermiştir. Ayrıca, aşağıdaki kaynakları kullanarak Aspose.Words for .NET hakkında daha fazlasını keşfedebilirsiniz.
Aspose.Words for .NET’i Ücretsiz Deneyin
Geçici lisans talep ederek Aspose.Words for .NET’i ücretsiz olarak deneyebilirsiniz.