ค้นหาและแทนที่ข้อความใน PDF Java

ในหลายกรณี คุณอาจต้องค้นหาและแทนที่ข้อความบางส่วนในเอกสาร PDF อย่างไรก็ตาม การค้นหาและอัปเดตแต่ละรายการด้วยตนเองอาจทำให้คุณเสียเวลาและความพยายามเพิ่มขึ้น ในกรณีเช่นนี้ ตัวเลือกค้นหาและแทนที่จะทำให้ชีวิตของคุณง่ายขึ้น ในบทความนี้ คุณจะได้เรียนรู้วิธีค้นหาและแทนที่ข้อความในเอกสาร PDF โดยใช้ Java

Java API เพื่อค้นหาและแทนที่ข้อความใน PDF - ดาวน์โหลดฟรี

Aspose.PDF for Java ออกแบบมาเพื่อสร้างและจัดการไฟล์ PDF จากภายในแอปพลิเคชัน Java 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 โดยใช้ Java

ในการแทนที่ข้อความเฉพาะใน PDF อันดับแรก คุณจะได้ส่วนข้อความทั้งหมดที่ตรงกับสตริงการค้นหา เมื่อคุณมีแล้ว ให้แทนที่แต่ละส่วนด้วยข้อความที่อัปเดตทีละรายการ

ต่อไปนี้เป็นขั้นตอนในการค้นหาและแทนที่ข้อความในไฟล์ PDF โดยใช้ Java

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีค้นหาและแทนที่ข้อความใน 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 ใน Java

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีค้นหาและแทนที่ข้อความในหน้าเฉพาะใน PDF โดยใช้ Java

// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ 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");

ค้นหาและแทนที่ข้อความโดยใช้ Regular Expressions ใน PDF

คุณยังสามารถระบุนิพจน์ทั่วไปเพื่อค้นหาข้อความที่ตรงกับรูปแบบเฉพาะ เช่น อีเมล SSN ฯลฯ ต่อไปนี้เป็นขั้นตอนในการกำหนดและใช้นิพจน์ทั่วไปเพื่อค้นหาและแทนที่ข้อความใน PDF โดยใช้ Java

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีค้นหาและแทนที่ข้อความใน 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 โดยไม่มีข้อจำกัดในการประเมินได้ฟรี รับใบอนุญาตชั่วคราวฟรี ตอนนี้

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีค้นหาและแทนที่ข้อความใน PDF โดยใช้ Java นอกจากนี้ คุณได้เห็นวิธีใช้นิพจน์ทั่วไปเพื่อค้นหาและแทนที่ข้อความตามรูปแบบเฉพาะ คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับ Java PDF API โดยใช้ เอกสารประกอบ

ดูสิ่งนี้ด้วย