در موارد مختلف، ممکن است لازم باشد یک قطعه متن خاص را در اسناد PDF پیدا و جایگزین کنید. با این حال، جستجو و به روز رسانی هر مورد به صورت دستی ممکن است هزینه و تلاش بیشتری برای شما داشته باشد. برای چنین مواردی، گزینه Find and جایگزین زندگی شما را آسان می کند. در این مقاله، نحوه یافتن و جایگزینی متن در اسناد PDF با استفاده از Java را خواهید آموخت.
- Java API برای یافتن و جایگزینی متن در PDF
- یافتن و جایگزینی متن در PDF با استفاده از جاوا
- متن را در یک صفحه خاص در PDF جایگزین کنید
- متن را با استفاده از عبارت منظم جایگزین کنید
Java API برای یافتن و جایگزینی متن در PDF - دانلود رایگان
Aspose.PDF for Java برای تولید و دستکاری فایل های PDF از داخل برنامه های جاوا طراحی شده است. API طیف گسترده ای از ویژگی های دستکاری اولیه و پیشرفته PDF از جمله یافتن و جایگزینی متن را ارائه می دهد. میتوانید API را دانلود یا با استفاده از تنظیمات Maven زیر نصب کنید.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>21.1</version>
</dependency>
یافتن و جایگزینی متن در PDF با استفاده از جاوا
به منظور جایگزینی یک متن خاص در PDF، ابتدا تمام قطعات متن مطابق با رشته جستجو را دریافت می کنید. هنگامی که آنها را دارید، به سادگی هر قطعه را با متن به روز شده یکی یکی جایگزین کنید.
مراحل زیر برای یافتن و جایگزینی متن در یک فایل PDF با استفاده از جاوا آمده است.
- فایل PDF را با استفاده از کلاس Document بارگیری کنید.
- یک شی از کلاس TextFragmentAbsorber ایجاد کنید و آن را با متنی که می خواهید پیدا کنید و جایگزین کنید، مقداردهی اولیه کنید.
- با استفاده از روش Document.getPages().accept(TextFragmentAbsorber) جذب کننده صفحات را در PDF بپذیرید.
- تمام تکرارهای متنی که توسط TextFragmentAbsorber.getTextFragments() برگردانده شده را در یک شیء TextFragmentCollection دریافت کنید.
- از میان هر TextFragment در شی TextFragmentCollection حلقه بزنید و متن را با استفاده از روش TextFragment.setText(String) جایگزین کنید.
- فایل PDF به روز شده را با استفاده از روش Document.save(String) ذخیره کنید.
نمونه کد زیر نحوه یافتن و جایگزینی متن در PDF را نشان می دهد.
// برای نمونه های کامل و فایل های داده، لطفاً به https://github.com/aspose-pdf/Aspose.Pdf-for-Java بروید
// سند را باز کنید
Document pdfDocument = new Document("source.pdf");
// برای یافتن تمام نمونه های عبارت جستجوی ورودی، شی TextAbsorber ایجاد کنید
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");
// جذب کننده را برای تمام صفحات سند بپذیرید
pdfDocument.getPages().accept(textFragmentAbsorber);
// قطعات متن استخراج شده را در مجموعه قرار دهید
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();
// از طریق قطعات حلقه بزنید
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
// متن و سایر ویژگی ها را به روز کنید
textFragment.setText("New Pharase");
textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
textFragment.getTextState().setFontSize(22);
textFragment.getTextState().setForegroundColor(Color.getBlue());
textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// فایل PDF به روز شده را ذخیره کنید
pdfDocument.save("Updated_Text.pdf");
جستجو و جایگزینی متن در یک صفحه خاص در PDF
به جای یافتن و جایگزینی متن در کل PDF، میتوانید یک صفحه را مشخص کنید که میخواهید تکرار متن را جایگزین کنید. در این صورت، شما TextFragmentAbsorber را برای یک صفحه خاص تنها با مشخص کردن فهرست صفحه میپذیرید.
در زیر مراحل جستجو و جایگزینی متن در یک صفحه خاص در PDF در جاوا آمده است.
- فایل PDF را با استفاده از کلاس Document بارگیری کنید.
- یک شی از کلاس TextFragmentAbsorber ایجاد کنید و آن را با متنی که می خواهید پیدا کنید و جایگزین کنید، مقداردهی اولیه کنید.
- با استفاده از روش Document.getPages().getItem(Int pageIndex).accept(TextFragmentAbsorber) جذب کننده را برای یک صفحه خاص در PDF بپذیرید.
- تمام تکرارهای متنی که توسط TextFragmentAbsorber.getTextFragments() برگردانده شده را در شیء TextFragmentCollection دریافت کنید.
- از میان هر TextFragment در شی TextFragmentCollection حلقه بزنید و متن را با استفاده از روش TextFragment.setText(String) جایگزین کنید.
- فایل PDF به روز شده را با استفاده از روش Document.save(String) ذخیره کنید.
نمونه کد زیر نحوه یافتن و جایگزینی متن را در یک صفحه خاص در PDF با استفاده از جاوا نشان می دهد.
// برای نمونه های کامل و فایل های داده، لطفاً به https://github.com/aspose-pdf/Aspose.Pdf-for-Java بروید
// سند را باز کنید
Document pdfDocument = new Document("source.pdf");
// برای یافتن تمام نمونه های عبارت جستجوی ورودی، شی TextAbsorber ایجاد کنید
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("sample");
// جذب کننده را برای صفحه اول سند بپذیرید
pdfDocument.getPages().get_Item(0).accept(textFragmentAbsorber);
// قطعات متن استخراج شده را در مجموعه قرار دهید
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();
// از طریق قطعات حلقه بزنید
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
// متن و سایر ویژگی ها را به روز کنید
textFragment.setText("New Pharase");
textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
textFragment.getTextState().setFontSize(22);
textFragment.getTextState().setForegroundColor(Color.getBlue());
textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// فایل PDF به روز شده را ذخیره کنید
pdfDocument.save("Updated_Text.pdf");
یافتن و جایگزینی متن با استفاده از عبارات منظم در PDF
همچنین می توانید برای جستجوی متنی که با یک الگوی خاص مانند ایمیل ها، SSN ها و غیره مطابقت دارد، یک عبارت منظم تعیین کنید. در زیر مراحل تعریف و استفاده از یک عبارت منظم برای جستجو و جایگزینی متن در PDF با استفاده از جاوا آمده است.
- فایل PDF را با استفاده از کلاس Document بارگیری کنید.
- یک شی از کلاس TextFragmentAbsorber ایجاد کنید و آن را با عبارت منظمی که می خواهید استفاده کنید مقداردهی اولیه کنید.
- یک شی از کلاس TextSearchOptions ایجاد کنید و آن را با true مقداردهی کنید تا جستجوی مبتنی بر عبارت معمولی فعال شود.
- با استفاده از روش TextFragmentAbsorber.setTextSearchOptions(TextSearchOptions) گزینهها را تنظیم کنید.
- با استفاده از روش Document.getPages().accept(TextFragmentAbsorber) جذب کننده صفحات را در PDF بپذیرید.
- همه موارد یافت شده از متن بازگردانده شده توسط TextFragmentAbsorber.getTextFragments() را در شیء TextFragmentCollection دریافت کنید.
- هر TextFragment را در شیء TextFragmentCollection حلقه بزنید و با استفاده از روش TextFragment.setText(String) متن را جایگزین کنید.
- فایل PDF به روز شده را با استفاده از روش Document.save(String) ذخیره کنید.
نمونه کد زیر نحوه یافتن و جایگزینی متن در PDF را با استفاده از عبارت منظم نشان می دهد.
// برای نمونه های کامل و فایل های داده، لطفاً به https://github.com/aspose-pdf/Aspose.Pdf-for-Java بروید
// سند را باز کنید
Document pdfDocument = new Document("input.pdf");
// برای یافتن تمام نمونه های عبارت جستجوی ورودی، شی TextAbsorber ایجاد کنید
TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber("\\d{4}-\\d{4}"); // like 1999-2000
// گزینه جستجوی متن را برای فعال کردن استفاده از عبارت منظم تنظیم کنید
TextSearchOptions textSearchOptions = new TextSearchOptions(true);
textFragmentAbsorber.setTextSearchOptions(textSearchOptions);
// جذب کننده را برای تمام صفحات سند بپذیرید
pdfDocument.getPages().accept(textFragmentAbsorber);
// قطعات متن استخراج شده را در مجموعه قرار دهید
TextFragmentCollection textFragmentCollection = textFragmentAbsorber.getTextFragments();
// از طریق قطعات حلقه بزنید
for (TextFragment textFragment : (Iterable<TextFragment>) textFragmentCollection) {
// متن و سایر ویژگی ها را به روز کنید
textFragment.setText("New Pharase");
textFragment.getTextState().setFont(FontRepository.findFont("Verdana"));
textFragment.getTextState().setFontSize(22);
textFragment.getTextState().setForegroundColor(Color.getBlue());
textFragment.getTextState().setBackgroundColor(Color.getGray());
}
// فایل PDF به روز شده را ذخیره کنید
pdfDocument.save("Updated_Text.pdf");
یک مجوز API رایگان دریافت کنید
می توانید API را بدون محدودیت ارزیابی به صورت رایگان امتحان کنید. اکنون [یک مجوز موقت رایگان] دریافت کنید35.
نتیجه
در این مقاله نحوه یافتن و جایگزینی متن در PDF با استفاده از جاوا را یاد گرفتید. علاوه بر این، نحوه استفاده از یک عبارت منظم را برای جستجو و جایگزینی متن به دنبال یک الگوی خاص دیده اید. میتوانید با استفاده از مستندات درباره Java PDF API بیشتر کاوش کنید.