En yaygın ve yaygın olarak kullanılan kelime işlemci dosya formatları DOC, DOCX ve ODT’dir. Ünlü Microsoft Word ve OpenOffice Writer bu formatları destekler ve normalde bu formatları belgeleri hazırlamak için kullanırız. Bu nedenle, bir geliştirici olarak, uygulamalarımızda Word belgelerini programlı olarak düzenlememiz gerekiyor. Bu yazıda, belge düzenleme için .NET API’sini kullanarak C#’ta Word belgelerinin nasıl düzenleneceğini tartışacağız.
Bu yazıda kısaca ele alınan konular şunlardır:
Word Belgelerini Düzenleme ve Otomasyon için .NET API
Bu yazıda, geliştiricilerin WYSIWYG HTML editörlerini kullanarak çeşitli belge formatlarını yüklemesine, düzenlemesine ve kaydetmesine olanak tanıyan belge düzenleme API’si olan C# örneklerinde GroupDocs.Editor for .NET kullanacağım. Sözcük işlemci belge biçimlerine ek olarak API, elektronik tabloları, sunumları, HTML, XML, TXT, DSV, TSV ve CSV biçimlerini düzenlemeyi destekler.
İndirmeler bölümünden DLL’leri veya MSI yükleyicisini indirin veya NuGet yoluyla .NET uygulamanıza API’yi yükleyin.
PM> Install-Package GroupDocs.Editor
Word Belgelerini C# ile Düzenleyin
API’yi kurduktan hemen sonra, Word belgesini düzenlemeye hızla geçebilirsiniz. Aşağıdaki adımlar, sözcük işlemci belgesini düzenlemenize izin verecektir.
- Word belgesini yükleyin.
- Seçeneklere göre düzenleyin.
- Düzenlenen belgeyi kaydedin.
Word belgesini yükleyin
İlk olarak, belge korumalıysa, belge yolunu ve parolayı sağlayarak belgeyi yükleyin.
using (FileStream fs = File.OpenRead(inputFilePath))
{
Options.WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
loadOptions.Password = "password-if-any";
}
Word belgesini düzenleyin
Yükledikten sonra, yüklenen belgeyi ihtiyacınıza göre düzenleyebilirsiniz. Burada, aşağıdaki C# kodunu kullanarak bir Word belgesindeki “belge” kelimesinin tüm oluşumlarını “düzenlenmiş belge” ile değiştiriyorum.
using (Editor editor = new Editor(delegate { return fs; }, delegate { return loadOptions; }))
{
Options.WordProcessingEditOptions editOptions = new WordProcessingEditOptions();
editOptions.FontExtraction = FontExtractionOptions.ExtractEmbeddedWithoutSystem;
editOptions.EnableLanguageInformation = true;
editOptions.EnablePagination = true;
using (EditableDocument beforeEdit = editor.Edit(editOptions))
{
string originalContent = beforeEdit.GetContent();
List<IHtmlResource> allResources = beforeEdit.AllResources;
string editedContent = originalContent.Replace("document", "edited document");
}
}
Düzenlenmiş Word belgesini Seçenekler ile kaydedin
Son olarak, düzenlenen belge içeriğini kaydederken çeşitli seçenekleri ayarlayabilirsiniz. Bu seçenekler arasında; sayfalandırma, parola belirleme, yerel ayar, koruma veya bellek optimizasyonu ayarları. Aşağıda belirtilen kodda yukarıdaki seçenekleri ayarlıyorum ve düzenlenen belgeyi şifre korumalı ve salt okunur bir DOCX dosyası olarak kaydediyorum.
using (EditableDocument afterEdit = EditableDocument.FromMarkup(editedContent, allResources))
{
Options.WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions(WordProcessingFormats.Docx);
saveOptions.EnablePagination = true;
saveOptions.Locale = System.Globalization.CultureInfo.GetCultureInfo("en-US");
saveOptions.OptimizeMemoryUsage = true;
saveOptions.Password = "password";
saveOptions.Protection = new WordProcessingProtection(WordProcessingProtectionType.ReadOnly, "write\_password");
using (FileStream outputStream = File.Create("filepath/editedDocument.docx"))
{
editor.Save(afterEdit, outputStream, saveOptions);
}
}
Tam Kod
Size kolaylık sağlamak için, yukarıda açıklanan C# örneğinin tamamını gösteriyorum ve bu örnek Word belgesini düzenleyip DOCX biçiminde kaydediyor.
// GroupDocs belge düzenleme ve otomasyon API'sini kullanarak C# dilinde Word belgesini düzenleyin
using (FileStream fs = File.OpenRead("filepath/document.docx"))
{ // Load Document
Options.WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
loadOptions.Password = "password-if-any";
// Belgeyi Düzenle
using (Editor editor = new Editor(delegate { return fs; }, delegate { return loadOptions; }))
{
Options.WordProcessingEditOptions editOptions = new WordProcessingEditOptions();
editOptions.FontExtraction = FontExtractionOptions.ExtractEmbeddedWithoutSystem;
editOptions.EnableLanguageInformation = true;
editOptions.EnablePagination = true;
using (EditableDocument beforeEdit = editor.Edit(editOptions))
{
string originalContent = beforeEdit.GetContent();
List<IHtmlResource> allResources = beforeEdit.AllResources;
string editedContent = originalContent.Replace("document", "edited document");
// Belgeyi Kaydet
using (EditableDocument afterEdit = EditableDocument.FromMarkup(editedContent, allResources))
{
WordProcessingFormats docxFormat = WordProcessingFormats.Docx;
Options.WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions(docxFormat);
saveOptions.EnablePagination = true;
saveOptions.Locale = System.Globalization.CultureInfo.GetCultureInfo("en-US");
saveOptions.OptimizeMemoryUsage = true;
saveOptions.Password = "password";
saveOptions.Protection = new WordProcessingProtection(WordProcessingProtectionType.ReadOnly, "write_password");
using (FileStream outputStream = File.Create("filepath/editedDocument.docx"))
{
editor.Save(afterEdit, outputStream, saveOptions);
}
}
}
}
}
Aşağıdaki, yukarıdaki kod kullanılarak tüm oluşumların değiştirildiği çıktı belgesidir.
Çözüm
Sonuç olarak, .NET uygulamaları için belge düzenleme API’sini kullanarak C# dilinde Word belgelerini düzenlemeyi tartıştık. Belgelerinizin görsel düzenlemesi için API’yi WYSIWYG editörleri ile birlikte kullanabilirsiniz. Bundan sonra, kendi belge düzenleyicinizi oluşturmak için ilerleyebilirsiniz. Benzer şekilde, düzenleme özelliğini .NET uygulamanıza da entegre edebilirsiniz.
Daha fazla ayrıntı, seçenek ve örnek için dokümantasyon ve GitHub deposunu ziyaret edebilirsiniz. Daha fazla sorgu için forumda destek ekibiyle iletişime geçin.