Trong bài đăng này, bạn sẽ tìm hiểu cách trích xuất văn bản từ tệp PDF một cách liền mạch bằng Java. Trích xuất văn bản có thể hữu ích trong các tình huống khác nhau như phân tích văn bản, truy xuất thông tin, phân tích cú pháp tài liệu, v.v. Vì PDF là một trong những tài liệu kỹ thuật số được sử dụng rộng rãi nhất nên các trường hợp sử dụng trích xuất văn bản từ tài liệu PDF có số lượng nhiều hơn. Vì vậy, hãy bắt đầu và kiểm tra cách thực hiện trích xuất văn bản PDF từ bên trong các ứng dụng Java.
- API trích xuất văn bản Java - Tải xuống miễn phí
- Trích xuất văn bản từ PDF bằng Java
- Trích xuất văn bản từ trang cụ thể trong PDF
- Trích xuất văn bản từ một vùng trang trong PDF
API Java để trích xuất văn bản từ PDF - Tải xuống miễn phí
Aspose.PDF for Java là API thao tác tệp PDF nổi tiếng cung cấp nhiều tính năng để tạo và xử lý tệp PDF. API chứa một trình trích xuất văn bản mạnh mẽ cung cấp nhiều cách khác nhau để trích xuất văn bản từ tài liệu PDF trong một vài dòng mã. Bạn có thể tải xuống JAR của API hoặc cài đặt nó trong các ứng dụng dựa trên Maven của mình bằng cách sử dụng các cấu hình sau.
<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>
Trích xuất văn bản từ PDF bằng Java
Sau đây là các bước để trích xuất văn bản từ tài liệu PDF bằng Aspose.PDF for Java.
- Sử dụng lớp Document để tải tệp PDF.
- Tạo một đối tượng của lớp TextAbsorber.
- Chấp nhận TextAbsorber cho tất cả các trang của PDF bằng phương thức Document.getPages().accept(TextAbsorber).
- Sử dụng phương thức TextAbsorber.getText() để tìm nạp tất cả văn bản từ PDF.
- Lưu văn bản vào tệp TXT (tùy chọn).
Mẫu mã sau đây cho biết cách trích xuất văn bản từ PDF bằng Java.
// Để biết các ví dụ đầy đủ và tệp dữ liệu, vui lòng truy cập https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// mở tài liệu
Document pdfDocument = new Document("input.pdf");
// Tạo đối tượng TextAbsorber để trích xuất văn bản
TextAbsorber textAbsorber = new TextAbsorber();
// Chấp nhận chất hấp thụ cho tất cả các trang
pdfDocument.getPages().accept(textAbsorber);
// Lấy văn bản trích xuất
String extractedText = textAbsorber.getText();
// Tạo một nhà văn và mở tệp
java.io.FileWriter writer = new java.io.FileWriter(new java.io.File("Extracted_text.txt"));
writer.write(extractedText);
// Viết một dòng văn bản vào tệp tw.WriteLine(extractedText);
// Đóng luồng
writer.close();
Trích xuất văn bản từ trang cụ thể trong PDF
Bạn cũng có thể trích xuất văn bản từ một trang cụ thể của tài liệu PDF bằng các bước sau.
- Sử dụng lớp Document để tải tệp PDF.
- Tạo một thể hiện của lớp TextDevice.
- Xác định các tùy chọn bổ sung bằng lớp TextExtractionOptions.
- Đặt tùy chọn bằng phương pháp TextDevice.setExtractionOptions(TextExtractionOptions).
- Sử dụng TextDevice.Process(Page, String) để trích xuất văn bản từ trang đã chỉ định.
Mẫu mã sau đây cho biết cách trích xuất văn bản từ một trang cụ thể trong PDF bằng Java.
// Để biết các ví dụ đầy đủ và tệp dữ liệu, vui lòng truy cập https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// mở tài liệu
Document pdfDocument = new Document("input.pdf");
// tạo thiết bị văn bản
TextDevice textDevice = new TextDevice();
// đặt tùy chọn trích xuất văn bản - đặt chế độ trích xuất văn bản (Thô hoặc Nguyên chất)
TextExtractionOptions textExtOptions = new TextExtractionOptions(TextExtractionOptions.TextFormattingMode.Raw);
textDevice.setExtractionOptions(textExtOptions);
// lấy văn bản từ trang đầu tiên của PDF và lưu nó ở định dạng tệp
textDevice.process(pdfDocument.getPages().get_Item(1), "ExtractedText.txt");
Trích xuất văn bản từ một vùng trang trong PDF
Bạn cũng có thể trích xuất văn bản từ một vùng cụ thể của trang trong PDF. Đối với điều này, bạn có thể xác định một hình chữ nhật để bao phủ khu vực mà bạn cần trích xuất văn bản. Sau đây là các bước để trích xuất văn bản từ một vùng trang.
- Sử dụng lớp Document để tải tệp PDF.
- Tạo một đối tượng của lớp TextAbsorber.
- Đặt giới hạn cho giới hạn trang và tạo hình chữ nhật bằng cách sử dụng TextAbsorber.getTextSearchOptions().setLimitToPageBounds(true) và TextAbsorber.getTextSearchOptions().setRectangle(new Rectangle(100, 200, 250, 350)) phương pháp tương ứng.
- Chấp nhận chất hấp thụ cho trang cụ thể.
- Sử dụng phương thức TextAbsorber.getText() để trích xuất văn bản.
Mẫu mã sau đây cho biết cách trích xuất văn bản từ một vùng trang cụ thể trong Java.
// Để biết các ví dụ đầy đủ và tệp dữ liệu, vui lòng truy cập https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// mở tài liệu
Document doc = new Document("page_0001.pdf");
// tạo đối tượng TextAbsorber để trích xuất văn bản
TextAbsorber absorber = new TextAbsorber();
absorber.getTextSearchOptions().setLimitToPageBounds(true);
absorber.getTextSearchOptions().setRectangle(new Rectangle(100, 200, 250, 350));
// chấp nhận chất hấp thụ cho trang đầu tiên
doc.getPages().get_Item(1).accept(absorber);
// lấy văn bản trích xuất
String extractedText = absorber.getText();
// tạo một nhà văn và mở tập tin
BufferedWriter writer = new BufferedWriter(new FileWriter(new java.io.File("ExtractedText.txt")));
// viết nội dung được trích xuất
writer.write(extractedText);
// Đóng nhà văn
writer.close();
Sự kết luận
Trong bài viết này, bạn đã học cách trích xuất văn bản từ PDF bằng Java. Bạn đã thấy nhiều cách trích xuất văn bản khác nhau, chẳng hạn như trích xuất văn bản từ toàn bộ tệp PDF, một trang cụ thể hoặc một vùng trang cụ thể. Bạn có thể tìm hiểu thêm về Java PDF API bằng cách sử dụng tài liệu.
Xem thêm
Thông tin: Aspose gần đây đã phát triển dịch vụ Chuyển văn bản thành GIF trực tuyến miễn phí cho phép bạn tạo hoạt ảnh cho văn bản hoặc tạo ảnh GIF từ các văn bản đơn giản.