در یکی از مقالات، قبلاً [نحوه ویرایش کلمات در اسناد به عنوان توسعه‌دهنده دات‌نت11 را مورد بحث قرار داده‌ایم. این استراتژی به روش‌های مختلفی برای پاک کردن محتوای حساس، پنهان کردن یا حذف اطلاعات خصوصی مانند آدرس‌های ایمیل یا شماره‌های شناسایی استفاده می‌شود. این مقاله نحوه انجام جستجوی کلمه در اسناد Word DOC/DOCX در Java را مورد بحث قرار می دهد. ما به طور جداگانه در مورد چگونگی یافتن و جایگزینی متن، کلمات یا عبارات با تکنیک های مختلف با استفاده از Java API برای ویرایش بحث خواهیم کرد.

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

Java API برای جستجوی کلمه و جایگزینی متن

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

دانلود یا پیکربندی کنید

می‌توانید فایل JAR را از بخش دانلودها دانلود کنید، یا فقط آخرین پیکربندی‌های مخزن و وابستگی را برای pom.xml برنامه‌های Java مبتنی بر maven خود دریافت کنید.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-redaction</artifactId>
        <version>21.12</version> 
</dependency>

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

سند برای ویرایش متن

کلمات یا عبارات را با استفاده از Java پیدا و جایگزین کنید

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

  • فایل DOC/DOCX را با استفاده از کلاس Redactor بارگیری کنید.
  • با استفاده از کلاس های ExactPhraseRedaction و ReplacementOptions عبارت یا کلمه دقیق را پیدا کنید.
  • برای اعمال ویرایش از روش Apply Redactor استفاده کنید.
  • برای ذخیره فایل در مکان های مختلف پس از ایجاد تغییرات، از جریان خروجی استفاده کنید.
  • تغییرات ویرایش را با استفاده از روش ذخیره ذخیره کنید.

کد زیر با استفاده از Java کلمه “John Doe” را در سند Word بالا پیدا کرده و جایگزین می کند. همه موارد “جان دو” را با کلمه “[سانسور شده” جایگزین می کند.

// عبارت دقیق را پیدا کنید و آن را با متن دیگری با استفاده از Java جایگزین کنید
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
// اگر می خواهید فایل ویرایش شده را در مکان های مختلف با نام های مختلف ذخیره کنید.
FileOutputStream stream = new FileOutputStream("path/exactPhrase.docx");
RasterizationOptions rasterOptions = new RasterizationOptions();
rasterOptions.setEnabled(false);
redactor.save(stream, rasterOptions);

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

ویرایش با استفاده از عبارت دقیق

جستجوی کلمات حساس به حروف بزرگ و جایگزینی متن در Java

به نظر می رسد در مورد حروف دقیق کلمه محتاط هستید و فقط می خواهید کلمه ای را جایگزین کنید که فقط با جستجوی حساس به حروف بزرگ مطابقت دارد. کد زیر جایگزین وجود مطابقت دقیق کلمه “John Doe” در Java می شود.

// عبارت دقیق (حساس به حروف بزرگ) را پیدا کنید و با استفاده از Java آن را با متن دیگری جایگزین کنید
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
redactor.save();

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

ویرایش حساس به حروف کوچک

متن را با استفاده از عبارات منظم (RegEx) در Java جایگزین کنید

اگر نمی خواهید کلمه دقیق را تغییر دهید اما الگوی موجود در سند شما وجود دارد، می توانید از عبارت Regular استفاده کنید. مراحل زیر به شما امکان می دهد هر الگوی متن را با استفاده از عبارات منظم (RegEx) در برنامه های Java خود پیدا کرده و جایگزین کنید.

  • سند را با استفاده از کلاس Redactor بارگیری کنید.
  • RegEx را با استفاده از RegexRedaction ایجاد کنید.
  • متن را با استفاده از ReplacementOptions برای جایگزینی مطابقت RegEx ارائه دهید.
  • از روش اعمال استفاده کنید تا همه موارد مشابه را جایگزین کنید.
  • از روش ذخیره برای دریافت سند ویرایش شده استفاده کنید.

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

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

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

ویرایش RegEx

متن را با کادر رنگی در Java جایگزین کنید

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

// متن را پیدا کنید و با کشیدن مستطیل روی آن با استفاده از Java آن را پنهان کنید
final Redactor redactor  = new Redactor("path/document.docx");
redactor.apply(new ExactPhraseRedaction("John Doe", true, new ReplacementOptions(java.awt.Color.BLACK)));
redactor.save();

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

مخفی کردن متن با استفاده از جعبه

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

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

نتیجه

به طور خلاصه، یاد گرفتید که چگونه جستجوی کلمه را انجام دهید تا متن را در اسناد Word با استفاده از جستجوی دقیق عبارت متنی، جستجوی حساس به حروف بزرگ، جستجو با استفاده از عبارات منظم، و در نهایت پنهان کردن متن به جای جایگزین کردن آن انجام دهید. شما می توانید از این تکنیک های مختلف برای جایگزینی یافته ها به روش های مختلف در اسناد MS Word استفاده کنید.

برای جزئیات بیشتر و یادگیری در مورد API، به [اسناد] مراجعه کنید. برای سؤالات، از طریق [فروم 5 با ما تماس بگیرید.

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