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

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

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

GroupDocs API Java را برای اعمال انواع مختلف ویرایش ها ارائه می کند. این اجازه می دهد تا محتوا و حتی ابرداده اسناد، ارائه ها، صفحات گسترده، فایل های PDF و تصاویر درون برنامه را ویرایش، پنهان یا حذف کنید. برای جزئیات بیشتر درباره API، به [اسناد] آن (https://docs.groupdocs.com/redaction/java/) مراجعه کنید.

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

می‌توانید فایل 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>

یکی از چیزهای خوب این است که نیازی به نصب هیچ ویرایشگر PDF یا هر نرم افزار شخص ثالث دیگری برای ویرایش PDF نیست. در زیر محتوای سند PDF است که در مثال های زیر برای ویرایش استفاده می شود. همین رویکرد برای سایر فرمت‌های سند با تفاوت چندانی در کد منبع کار خواهد کرد.

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

می توانید از این ویژگی برای مخفی کردن داده های خصوصی و همچنین ایجاد یک سند سفارشی جدید از هر الگوی استفاده کنید. مرحله زیر نحوه یافتن هر کلمه/ عبارتی را در یک سند PDF و جایگزینی آن با متن دیگری در برنامه Java توضیح می دهد.

  • فایل PDF را با استفاده از کلاس Redactor بارگیری کنید.
  • عبارت یا کلمه دقیق را با استفاده از ExactPhraseRedaction و ReplacementOptions پیدا کنید. com/redaction/java/com.groupdocs.redaction.redactions/ReplacementOptions).
  • ویرایش را با استفاده از متد application() اعمال کنید.
  • سند جدید را با تغییرات با استفاده از متد save() ذخیره کنید.

کد زیر با استفاده از Java کلمات موجود در یک فایل PDF را پیدا کرده و جایگزین می کند. به عبارت دقیق تر، با جایگزین کردن کلمه “[سانسور شده”، تمام رخدادهای “جان دو” را پنهان می کند.

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

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

با استفاده از جاوا، متن یا عبارت حساس به حروف را در PDF پیدا و جایگزین کنید

می توانید جستجو و ویرایش حساس به حروف بزرگ را انجام دهید. کد زیر جایگزین کلمه “John Doe” به حروف کوچک و بزرگ می شود اما نه “john doe” در یک سند PDF با استفاده از جاوا.

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

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

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

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

  • سند PDF را با استفاده از کلاس Redactor بارگیری کنید.
  • مطابقت regex را با استفاده از کلاس RegexRedaction با ReplacementOptions پیدا کنید redaction/java/com.groupdocs.redaction.redactions/ReplacementOptions).
  • در تغییرات سند با استفاده از متد application() اعمال کنید.
  • سند ویرایش شده را با استفاده از روش save() مناسب ذخیره کنید.

کد Java زیر نشان می دهد که چگونه می توان یک الگوی متن خاص را در یک سند PDF با استفاده از RegEx پیدا کرد و بعداً آن را با متن دیگری جایگزین/مخفی کرد.

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

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

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

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

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

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

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

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

نتیجه

به طور خلاصه، ما یاد گرفتیم که چگونه با استفاده از تکنیک های مختلف جستجو، متن خاصی را در فایل های PDF پیدا کنیم. بعداً فایل‌های PDF را با جایگزین کردن یا پنهان کردن متن در برنامه‌های کاربردی در Java ویرایش کردیم. به طور دقیق تر، ما یک جستجوی ساده برای کلمات، عبارات، جستجو با حساسیت حروف کوچک و بزرگ و با استفاده از RegEx در Java انجام دادیم. در نهایت، نتایج جستجو را با متن دیگری یا با پنهان کردن آن با رنگ روی آن تغییر دادیم.

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

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