logo Aspose.PDF使用教程 我也要发布文档

使用Java从PDF文档中提取文本


由于PDF是使用最广泛的数字文档之一,因此从PDF文档提取文本的用例数量更多。在本文中,将学习如何使用Java无缝地从PDF文档中提取文本。在各种情况下,例如文本分析,信息检索,文档解析等,文本提取都可能有用。

  • 使用Java从PDF提取文本
  • 从PDF中的特定页面提取文本
  • 从PDF中的页面区域提取文本

目前,Java版Aspose.PDF升级到v20.11版,感兴趣的朋友可点击下方按钮下载最新版。

点击下载最新版Aspose.PDF for Java

使用Java从PDF提取文本

以下是使用Aspose.PDF for Java从PDF文档提取文本的步骤。

  • 使用Document类加载PDF文件。
  • 创建一个TextAbsorber类的对象。
  • 接受TextAbsorber使用PDF的所有页面Document.getPages()接受(TextAbsorber)方法。
  • 使用TextAbsorber.getText()方法从PDF获取所有文本。
  • 将文本保存到TXT文件中(可选)。

以下代码示例显示了如何使用Java从PDF中提取文本。

// Open document
Document pdfDocument = new Document("input.pdf");

// Create TextAbsorber object to extract text
TextAbsorber textAbsorber = new TextAbsorber();

// Accept the absorber for all the pages
pdfDocument.getPages().accept(textAbsorber);

// Get the extracted text
String extractedText = textAbsorber.getText();

// Create a writer and open the file
java.io.FileWriter writer = new java.io.FileWriter(new java.io.File("Extracted_text.txt"));
writer.write(extractedText);

// Write a line of text to the file tw.WriteLine(extractedText);
// Close the stream
writer.close();

使用Java从PDF中的特定页面提取文本

还可以使用以下步骤从PDF文档的特定页面提取文本。

  • 使用Document类加载PDF文件。
  • 创建TextDevice类的实例。
  • 使用TextExtractionOptions类定义其他选项。
  • 使用TextDevice.setExtractionOptions(TextExtractionOptions)方法设置选项。
  • 使用TextDevice.Process(Page,String)从指定的页面提取文本。

下面的代码示例演示如何使用Java从PDF的特定页面提取文本。

// open document
Document pdfDocument = new Document("input.pdf");
// create text device
TextDevice textDevice = new TextDevice();

// set text extraction options - set text extraction mode (Raw or Pure)
TextExtractionOptions textExtOptions = new TextExtractionOptions(TextExtractionOptions.TextFormattingMode.Raw);

textDevice.setExtractionOptions(textExtOptions);

// get the text from first page of PDF and save it to file format
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中的特定页面区域提取文本。

// open document
Document doc = new Document("page_0001.pdf");

// create TextAbsorber object to extract text
TextAbsorber absorber = new TextAbsorber();
absorber.getTextSearchOptions().setLimitToPageBounds(true);
absorber.getTextSearchOptions().setRectangle(new Rectangle(100, 200, 250, 350));
// accept the absorber for first page
doc.getPages().get_Item(1).accept(absorber);

// get the extracted text
String extractedText = absorber.getText();
// create a writer and open the file
BufferedWriter writer = new BufferedWriter(new FileWriter(new java.io.File("ExtractedText.txt")));
// write extracted contents
writer.write(extractedText);
// Close writer
writer.close();

还想要更多吗?您可以点击阅读【2020 · Aspose最新资源整合】查找需要的教程资源。如果您有任何疑问或需求,请随时加入Aspose技术交流群(761297826),我们很高兴为您提供查询和咨询