ในโพสต์นี้ คุณจะได้เรียนรู้วิธีแยกข้อความจากไฟล์ PDF อย่างราบรื่นโดยใช้ Java การแยกข้อความอาจมีประโยชน์ในสถานการณ์ต่างๆ เช่น การวิเคราะห์ข้อความ การดึงข้อมูล การแยกวิเคราะห์เอกสาร และอื่นๆ เนื่องจาก PDF เป็นหนึ่งในเอกสารดิจิทัลที่ใช้กันอย่างแพร่หลาย กรณีการใช้งานของการดึงข้อความจากเอกสาร PDF จึงมีจำนวนมากกว่า เรามาเริ่มต้นและตรวจสอบวิธีการแยกข้อความ PDF จากภายในแอปพลิเคชัน Java
- Java Text Extraction API - ดาวน์โหลดฟรี
- แยกข้อความจาก PDF โดยใช้ Java
- แยกข้อความจากหน้าเฉพาะใน PDF
- การแยกข้อความจากขอบเขตของหน้าใน PDF
Java API เพื่อแยกข้อความจาก PDF - ดาวน์โหลดฟรี
Aspose.PDF for Java คือ API จัดการไฟล์ PDF ที่รู้จักกันดี ซึ่งมีคุณสมบัติมากมายในการสร้างและประมวลผลไฟล์ PDF API มีตัวแยกข้อความที่มีประสิทธิภาพซึ่งมีวิธีการต่างๆ ในการแยกข้อความจากเอกสาร PDF ภายในโค้ดไม่กี่บรรทัด คุณสามารถ ดาวน์โหลด JAR ของ 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>20.11</version>
</dependency>
แยกข้อความจาก PDF โดยใช้ Java
ต่อไปนี้เป็นขั้นตอนในการแยกข้อความจากเอกสาร PDF โดยใช้ Aspose.PDF for Java
- ใช้คลาส Document เพื่อโหลดไฟล์ PDF
- สร้างวัตถุของคลาส TextAbsorber
- ยอมรับ TextAbsorber สำหรับทุกหน้าของ PDF โดยใช้วิธี Document.getPages().accept(TextAbsorber)
- ใช้เมธอด TextAbsorber.getText() เพื่อดึงข้อความทั้งหมดจาก PDF
- บันทึกข้อความลงในไฟล์ TXT (ไม่บังคับ)
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแยกข้อความจาก PDF โดยใช้ Java
// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// เปิดเอกสาร
Document pdfDocument = new Document("input.pdf");
// สร้างวัตถุ TextAbsorber เพื่อแยกข้อความ
TextAbsorber textAbsorber = new TextAbsorber();
// รับโช้คทุกหน้า
pdfDocument.getPages().accept(textAbsorber);
// รับข้อความที่แยกออกมา
String extractedText = textAbsorber.getText();
// สร้างตัวเขียนและเปิดไฟล์
java.io.FileWriter writer = new java.io.FileWriter(new java.io.File("Extracted_text.txt"));
writer.write(extractedText);
// เขียนบรรทัดข้อความลงในไฟล์ tw.WriteLine(extractedText);
// ปิดสตรีม
writer.close();
แยกข้อความจากหน้าเฉพาะใน PDF
คุณยังสามารถแยกข้อความจากหน้าเฉพาะของเอกสาร PDF โดยใช้ขั้นตอนต่อไปนี้
- ใช้คลาส Document เพื่อโหลดไฟล์ PDF
- สร้างอินสแตนซ์ของคลาส TextDevice
- กำหนดตัวเลือกเพิ่มเติมโดยใช้คลาส TextExtractionOptions
- ตั้งค่าตัวเลือกโดยใช้เมธอด TextDevice.setExtractionOptions(TextExtractionOptions)
- ใช้ TextDevice.Process(Page, String) เพื่อแยกข้อความออกจากหน้าที่ระบุ
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแยกข้อความจากหน้าเฉพาะใน PDF โดยใช้ Java
// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// เปิดเอกสาร
Document pdfDocument = new Document("input.pdf");
// สร้างอุปกรณ์ข้อความ
TextDevice textDevice = new TextDevice();
// ตั้งค่าตัวเลือกการดึงข้อความ - ตั้งค่าโหมดการดึงข้อความ (ดิบหรือบริสุทธิ์)
TextExtractionOptions textExtOptions = new TextExtractionOptions(TextExtractionOptions.TextFormattingMode.Raw);
textDevice.setExtractionOptions(textExtOptions);
// รับข้อความจากหน้าแรกของ PDF และบันทึกเป็นรูปแบบไฟล์
textDevice.process(pdfDocument.getPages().get_Item(1), "ExtractedText.txt");
แยกข้อความจากขอบเขตของหน้าใน PDF
คุณยังสามารถแยกข้อความจากพื้นที่เฉพาะของหน้าใน PDF ในการทำเช่นนี้ คุณสามารถกำหนดสี่เหลี่ยมผืนผ้าให้ครอบคลุมพื้นที่ที่คุณต้องการแยกข้อความ ต่อไปนี้เป็นขั้นตอนในการแยกข้อความออกจากพื้นที่หน้า
- ใช้คลาส Document เพื่อโหลดไฟล์ PDF
- สร้างวัตถุของคลาส TextAbsorber
- ตั้งค่าขีดจำกัดของขอบเขตหน้าและสร้างสี่เหลี่ยมผืนผ้าโดยใช้ TextAbsorber.getTextSearchOptions().setLimitToPageBounds(true) และ TextAbsorber.getTextSearchOptions().setRectangle(new Rectangle(100, 200, 250, 350)) วิธีการตามลำดับ
- รับโช้คหน้าโดยเฉพาะ
- ใช้เมธอด TextAbsorber.getText() เพื่อแยกข้อความ
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแยกข้อความจากพื้นที่หน้าเฉพาะใน Java
// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// เปิดเอกสาร
Document doc = new Document("page_0001.pdf");
// สร้างวัตถุ TextAbsorber เพื่อแยกข้อความ
TextAbsorber absorber = new TextAbsorber();
absorber.getTextSearchOptions().setLimitToPageBounds(true);
absorber.getTextSearchOptions().setRectangle(new Rectangle(100, 200, 250, 350));
// ยอมรับโช้คสำหรับหน้าแรก
doc.getPages().get_Item(1).accept(absorber);
// รับข้อความที่แยกออกมา
String extractedText = absorber.getText();
// สร้างตัวเขียนและเปิดไฟล์
BufferedWriter writer = new BufferedWriter(new FileWriter(new java.io.File("ExtractedText.txt")));
// เขียนเนื้อหาที่แยกออกมา
writer.write(extractedText);
// ปิดนักเขียน
writer.close();
บทสรุป
ในบทความนี้ คุณได้เรียนรู้วิธีแยกข้อความจาก PDF โดยใช้ Java คุณได้เห็นวิธีต่างๆ ในการแยกข้อความ เช่น การแยกข้อความจาก PDF ทั้งหน้า หน้าเฉพาะ หรือพื้นที่หน้าเฉพาะ คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ Java PDF API โดยใช้ เอกสารประกอบ
ดูสิ่งนี้ด้วย
ข้อมูล: Aspose เพิ่งพัฒนาบริการ Text to GIF ออนไลน์ฟรีที่ให้คุณสร้างข้อความเคลื่อนไหวหรือสร้าง GIF จากข้อความง่ายๆ