دلایل زیادی برای جایگزینی یک کلمه یا عبارت در سند وجود دارد. چه بخواهید قبل از اشتراک‌گذاری عمومی سند، محتوای حساس را پاک کنید، چه بخواهید همه اطلاعات خصوصی مانند شناسه‌های ایمیل یا شماره‌های تامین اجتماعی را پنهان یا حذف کنید، باید محتوای سند را ویرایش کنید. این مقاله شما را راهنمایی می کند که چگونه اسناد Word را به صورت برنامه نویسی در برنامه های .NET خود با استفاده از C# ویرایش کنید. ما به طور جداگانه در مورد چگونگی ویرایش متن با پنهان کردن متن و نحوه یافتن و جایگزینی متن، کلمات یا عبارات با استفاده از تکنیک های مختلف بحث خواهیم کرد.

موضوعات زیر قرار است در زیر پوشش داده شود:

NET Redaction API برای جایگزینی متن

GroupDocs.Redaction for .NET یک API ویرایش اسناد است که امکان یافتن و سپس جایگزینی داده های مورد نظر را از اسناد با فرمت های مختلف فایل فراهم می کند. همراه با ویرایش متن و شطرنجی سازی، API ویژگی های متادیتا، حاشیه نویسی، صفحه گسترده و ویرایش تصاویر را فراهم می کند. قالب‌های فایل پشتیبانی‌شده اسناد Word، صفحات گسترده، ارائه‌ها، تصاویر و اسناد PDF در اسناد موجود است.

می‌توانید نصب‌کننده DLL یا MSI را از بخش دانلودها دانلود کنید یا API را از طریق NuGet در برنامه NET خود نصب کنید. /packages/groupdocs.redaction).

PM> Install-Package GroupDocs.Redaction

در این فرآیند نیازی به نصب MS Office یا هر نرم افزار شخص ثالث دیگری نیست. بیایید اکنون شروع کنیم و نگاهی به رویکردهای مختلف برای یافتن و جایگزینی متن در اسناد بیندازیم. تصویر زیر اسکرین شات یک سند Word است که در مثال ها برای نمایش استفاده می شود. همین روش ها برای سایر قالب های سند بدون هیچ تغییری در کد کار می کنند.

یافتن و جایگزینی کلمات یا عبارات در سند Word با استفاده از C#

مرحله زیر نحوه یافتن هر کلمه/عبارت را در یک سند Word توضیح می‌دهد و سپس همه موارد را با متن دیگری در برنامه C# جایگزین می‌کند.

  • سند Word (DOC/DOCX) را با استفاده از کلاس Redactor بارگیری کنید.
  • عبارت یا کلمه دقیق را با استفاده از کلاس ExactPhraseRedaction با ReplacementOptions پیدا کنید /redaction/net/groupdocs.redaction.redactions/replacementoptions).
  • برای اعمال ویرایش از روش Apply از Redactor استفاده کنید.
  • تغییرات را با استفاده از روش Save ذخیره کنید.

کد زیر کلمه را در C# پیدا کرده و جایگزین آن می کند. به عبارت دقیق‌تر، همه موارد «جان دو» را با «[سانسور شده» جایگزین می‌کند.

// عبارت دقیق را پیدا کنید و آن را با متن دیگری با استفاده از C# جایگزین کنید.
using (Redactor redactor = new Redactor(@"path/document.docx"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
  redactor.Save();
}

خروجی کد به صورت زیر است.

جستجو و جایگزینی حساس به حروف در فایل های Word با استفاده از C#

به طور مشابه، می‌توانید با یافتن کلمه دقیق و جایگزین کردن آن با هر کلمه دیگری، ویرایش حساس به حروف کوچک و بزرگ یک سند Word را انجام دهید. کد زیر جایگزین وجود کلمه John Doe در یک فایل DOCX با استفاده از C# شده است، اما این بار جستجو به حروف کوچک و بزرگ حساس خواهد بود.

// عبارت دقیق (حساس به حروف بزرگ) را پیدا کنید و با استفاده از C# آن را با متن دیگری جایگزین کنید.
using (Redactor redactor = new Redactor(@"path/document.docx"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
  redactor.Save();
}

خروجی کد به صورت زیر است.

جایگزین کردن متن در فایل های Word با استفاده از عبارات با قاعده (RegEx) با استفاده از C#

برای یافتن و جایگزینی هر الگوی متن در فایل های Word (DOC، DOCX) می توانید از عبارات منظم استفاده کنید. مراحل زیر به شما امکان می دهد یک سند Word را با RegEx با استفاده از C# ویرایش کنید.

  • سند Word را با استفاده از کلاس Redactor بارگیری کنید.
  • مطابقت regex را با استفاده از کلاس RegexRedaction با ReplacementOptions پیدا کنید net/groupdocs.redaction.redactions/replacementoptions).
  • از روش Apply برای جایگزینی همه متون تطبیق regex استفاده کنید.
  • برای دریافت فایل Word ویرایش شده از روش Save استفاده کنید.

کد زیر نشان می دهد که چگونه با استفاده از RegEx یک الگوی متن را در یک فایل Word پیدا کنید و سپس آن را با متن دیگری با استفاده از C# جایگزین یا پنهان کنید.

// متن را با استفاده از عبارت منظم پیدا کنید و با استفاده از C# با متن دیگری جایگزین کنید.
using (Redactor redactor = new Redactor(@"path/document.docx"))
{
  redactor.Apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
  redactor.Save();
}

خروجی کد بالا به صورت زیر است.

مخفی کردن متن محرمانه در اسناد Word با جعبه رنگی با استفاده از C#

اگر نمی‌خواهید محتوای خصوصی خود را جایگزین کنید، اما فقط می‌خواهید آن را پوشش دهید، API به شما اجازه می‌دهد آن محتوا را با کشیدن کادری روی آن پنهان کنید. کد زیر مستطیل سیاه را بر روی متن مورد نظر قرار می دهد تا متن با استفاده از C# خاموش شود.

// متن را پیدا کنید و با کشیدن مستطیل روی آن با استفاده از C# پنهان کنید.
using (Redactor redactor = new Redactor(@"path/document.docx"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions(System.Drawing.Color.Black)));
  redactor.Save();
}

خروجی کد بالا به صورت زیر است.

مجوز API رایگان دریافت کنید

برای استفاده از API بدون محدودیت ارزیابی، می توانید یک مجوز موقت رایگان دریافت کنید.

نتیجه

برای نتیجه گیری، یاد گرفتید که چگونه متن را در فایل های Word (DOC، DOCX) با استفاده از تکنیک های مختلف پیدا کنید و یافته ها را به روش های مختلف جایگزین کنید. به طور دقیق تر، در مورد چگونگی یافتن متن، کلمه یا عبارت حتی اگر جستجوی حساس به حروف بزرگ یا استفاده از یک عبارت منظم در C# باشد بحث کردیم. بعداً نتایج جستجو را با متن دیگری یا با قرار دادن کادر مستطیل رنگی روی متن جستجو شده جایگزین کردیم.

برای اطلاعات بیشتر درباره API، از documentation دیدن کنید. برای سؤالات، از طریق forum با ما تماس بگیرید.

همچنین ببینید