本快速教程提供了有关如何从 Java 中扫描的 PDF 中提取文本的详细信息。您可以通过设置检测参数来配置从Java扫描PDF中提取文本的过程。该选项还可用于根据 PDF 质量和其他应用程序要求在速度或准确性之间进行选择。
在 Java 中从扫描的 PDF 中提取文本的步骤
- 在 Maven 存储库中,在您的项目中配置 Aspose.OCR 以读取扫描的 PDF 文本
- 初始化 AsposeOcrPdf 对象以从 PDF 中读取文本
- 实例化 DocumentRecognitionSettings 类对象,用于设置识别参数
- 设置 PDF 中的起始页和页数以阅读文本
- 要提高检测速度,请将检测区域标志设置为 false
- 调用RecognizePdf函数按照上面的配置读取所有文本
- 遍历从 PDF 页面中提取的所有结果并将它们显示在控制台上
在用 Java 扫描 PDF 中的文本的过程中,会启动一个 AsposeOCRPdf 对象,该对象实际上包含从 PDF 中识别文本的功能。它支持配置检测过程,如起始页码、要阅读的 PDF 页数,以及设置检测区域以控制速度和准确性的选项。最后,我们解析从每个页面扫描的结果集合,并将它们显示在控制台上。
将扫描的 PDF 转换为 Java 文本的代码
import java.util.ArrayList; | |
import com.aspose.ocr.DocumentRecognitionSettings; | |
import com.aspose.ocr.RecognitionResult; | |
import com.aspose.ocr.pdf.AsposeOCRPdf; | |
public class ExtractTextFromScannedPdfInJava { | |
public static void main(String[] args) {//main function for ExtractTextFromScannedPdfInJava class | |
// Instantiate an AsposeOcrPdf object | |
AsposeOCRPdf ocrPdfToReadText = new AsposeOCRPdf(); | |
// Initialize DocumentRecognitionSettings class object for configuring recognition settings | |
DocumentRecognitionSettings docRecognitionConfig = new DocumentRecognitionSettings(1,3); | |
// Set detect areas to false to improve speed | |
docRecognitionConfig.setDetectAreas(false); | |
// Using the recognition settings, fetch text from the range of pages set in the constructor above | |
ArrayList<RecognitionResult> fetchedTextResults = ocrPdfToReadText.RecognizePdf("InputSampleFile.pdf", docRecognitionConfig); | |
// Iterate through all the text fetched from each page | |
int PageCounter = 1; | |
for(RecognitionResult page : fetchedTextResults) | |
{ | |
System.out.println("Page No: " + PageCounter + " Fetched Text:" + page.recognitionText); | |
PageCounter++; | |
} | |
} | |
} |
此代码使用 AsposeOCRPdf 从 Java 中扫描的 PDF 中获取文本。 DocumentRecognitionSettings 类对象包含用于设置页面配置的选项,这些选项可以使用此示例代码中演示的构造函数,也可以分别设置 StartPage 和 PagesNumber。您还可以设置语言、图像歪斜校正和线程数,以并行检测扫描的 PDF 中的文本。
在本文中,我们学习了如何使用 Java 从扫描的 PDF 中提取文本以及检测过程的配置。但是,如果您想从图像中提取文本,请参阅 如何使用Java从图像中提取文本 上的文章。