رایجترین و پرکاربردترین فرمتهای فایل پردازش کلمه، DOC، DOCX و ODT هستند. Microsoft Word و OpenOffice Writer معروف از این فرمت ها پشتیبانی می کنند و ما معمولا از این فرمت ها برای تهیه پیش نویس اسناد استفاده می کنیم. بنابراین، بهعنوان یک توسعهدهنده، بهطور گستردهای نیاز داریم که اسناد Word را در برنامههای خود به صورت برنامهنویسی ویرایش کنیم. در این مقاله به نحوه ویرایش اسناد Word در C# با استفاده از NET API برای ویرایش اسناد می پردازیم.
موضوعات زیر به طور خلاصه در این مقاله مورد بحث قرار گرفته است:
NET API برای ویرایش و اتوماسیون اسناد Word
در این مقاله، من از GroupDocs.Editor for .NET در مثالهای C# استفاده خواهم کرد، که API ویرایش اسناد است و به توسعهدهندگان اجازه میدهد تا قالبهای سند مختلف را با استفاده از ویرایشگرهای WYSIWYG HTML بارگیری، ویرایش و ذخیره کنند. علاوه بر فرمتهای سند پردازش کلمه، API از ویرایش صفحات گسترده، ارائهها، فرمتهای HTML، XML، TXT، DSV، TSV و CSV پشتیبانی میکند.
نصب کننده DLL یا MSI را از بخش دانلودها دانلود کنید یا API را از طریق NuGet در برنامه .NET خود نصب کنید.
PM> Install-Package GroupDocs.Editor
ویرایش اسناد Word در C#
فقط پس از راه اندازی API، می توانید به سرعت به سمت ویرایش سند Word حرکت کنید. مراحل زیر به شما امکان می دهد سند واژه پرداز را ویرایش کنید.
- سند Word را بارگیری کنید.
- مطابق با گزینه ها ویرایش کنید.
- سند ویرایش شده را ذخیره کنید.
سند Word را بارگیری کنید
ابتدا سند را با ارائه مسیر سند و رمز عبور در صورت محافظت از سند بارگیری کنید.
using (FileStream fs = File.OpenRead(inputFilePath))
{
Options.WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
loadOptions.Password = "password-if-any";
}
سند Word را ویرایش کنید
پس از بارگذاری، می توانید سند بارگذاری شده را مطابق با نیاز خود ویرایش کنید. در اینجا من با استفاده از کد C# زیر، تمام رخدادهای کلمه “سند” را با “سند ویرایش شده” در یک سند Word جایگزین می کنم.
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");
}
}
سند ویرایش شده Word را با گزینه ها ذخیره کنید
در نهایت، در حین ذخیره محتوای سند ویرایش شده، می توانید گزینه های مختلفی را تنظیم کنید. این گزینه ها عبارتند از صفحه بندی، تنظیم رمز عبور، محلی، حفاظت یا تنظیمات بهینه سازی حافظه. من گزینه های بالا را در کد زیر تنظیم می کنم و سند ویرایش شده را به عنوان یک فایل DOCX محافظت شده با رمز عبور و فقط خواندنی ذخیره می کنم.
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);
}
}
کد کامل
برای راحتی شما، مثال C# را که در بالا توضیح داده شده است را نشان می دهم و سند Word را ویرایش می کند و سپس آن را با فرمت DOCX ذخیره می کند.
// سند Word را در C# با استفاده از API ویرایش و اتوماسیون سند GroupDocs ویرایش کنید
using (FileStream fs = File.OpenRead("filepath/document.docx"))
{ // Load Document
Options.WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
loadOptions.Password = "password-if-any";
// ویرایش سند
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");
// ذخیره سند
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);
}
}
}
}
}
در زیر سند خروجی است که در آن تمام رخدادها با استفاده از کد بالا جایگزین شده اند.
نتیجه
برای نتیجه گیری، در مورد ویرایش اسناد Word در C# با استفاده از API ویرایش اسناد برای برنامه های NET بحث کردیم. می توانید از API با ویرایشگرهای WYSIWYG برای ویرایش بصری اسناد خود استفاده کنید. پس از آن، می توانید برای ایجاد ویرایشگر سند خود پیش بروید. به طور مشابه، شما همچنین می توانید ویژگی ویرایش را در برنامه .NET خود ادغام کنید.
برای جزئیات بیشتر، گزینهها و مثالها، میتوانید از اسناد و مخزن GitHub دیدن کنید. برای سوالات بیشتر، با پشتیبانی در [فروم 9 تماس بگیرید.