ในหลายกรณี คุณอาจต้องค้นหาและแทนที่ข้อความบางส่วนในเอกสาร PDF อย่างไรก็ตาม การค้นหาและอัปเดตแต่ละรายการด้วยตนเองอาจทำให้คุณเสียเวลาและความพยายามเพิ่มขึ้น ในกรณีเช่นนี้ ตัวเลือกค้นหาและแทนที่จะทำให้ชีวิตของคุณง่ายขึ้น ในบทความนี้ คุณจะได้เรียนรู้วิธีค้นหาและแทนที่ข้อความในเอกสาร PDF โดยใช้ Java
- Java API เพื่อค้นหาและแทนที่ข้อความใน PDF
- ค้นหาและแทนที่ข้อความใน PDF โดยใช้ Java
- แทนที่ข้อความในหน้าใดหน้าหนึ่งใน PDF
- แทนที่ข้อความโดยใช้ Regular Expression
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 โดยใช้คลาส Document
- สร้างวัตถุของคลาส TextFragmentAbsorber และเริ่มต้นด้วยข้อความที่คุณต้องการค้นหาและแทนที่
- ยอมรับตัวดูดซับสำหรับหน้าใน PDF โดยใช้เมธอด Document.getPages().accept(TextFragmentAbsorber)
- รับข้อความทั้งหมดที่ส่งคืนโดย 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 ใน Java
- โหลดไฟล์ PDF โดยใช้คลาส Document
- สร้างวัตถุของคลาส TextFragmentAbsorber และเริ่มต้นด้วยข้อความที่คุณต้องการค้นหาและแทนที่
- ยอมรับตัวดูดซับสำหรับหน้าเฉพาะใน PDF โดยใช้เมธอด Document.getPages().getItem(Int pageIndex).accept(TextFragmentAbsorber)
- รับข้อความทั้งหมดที่ส่งคืนโดย TextFragmentAbsorber.getTextFragments() ลงในวัตถุ TextFragmentCollection
- วนซ้ำแต่ละ TextFragment ในวัตถุ TextFragmentCollection และแทนที่ข้อความโดยใช้เมธอด TextFragment.setText(String)
- บันทึกไฟล์ PDF ที่อัปเดตโดยใช้เมธอด Document.save(String)
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีค้นหาและแทนที่ข้อความในหน้าเฉพาะใน 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 โดยใช้คลาส Document
- สร้างวัตถุของคลาส TextFragmentAbsorber และเริ่มต้นด้วยนิพจน์ทั่วไปที่คุณต้องการใช้
- สร้างออบเจกต์ของคลาส TextSearchOptions และเริ่มต้นด้วยค่าจริงเพื่อเปิดใช้งานการค้นหาตามนิพจน์ทั่วไป
- ตั้งค่าตัวเลือกโดยใช้เมธอด TextFragmentAbsorber.setTextSearchOptions(TextSearchOptions)
- ยอมรับตัวดูดซับสำหรับหน้าใน PDF โดยใช้เมธอด Document.getPages().accept(TextFragmentAbsorber)
- รับข้อความที่พบทั้งหมดที่ส่งกลับโดย TextFragmentAbsorber.getTextFragments() ลงในวัตถุ
- วนซ้ำแต่ละ 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 โดยไม่มีข้อจำกัดในการประเมินได้ฟรี รับใบอนุญาตชั่วคราวฟรี ตอนนี้
บทสรุป
ในบทความนี้ คุณได้เรียนรู้วิธีค้นหาและแทนที่ข้อความใน PDF โดยใช้ Java นอกจากนี้ คุณได้เห็นวิธีใช้นิพจน์ทั่วไปเพื่อค้นหาและแทนที่ข้อความตามรูปแบบเฉพาะ คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับ Java PDF API โดยใช้ เอกสารประกอบ