PDFBox - Lectura de texto

En el capítulo anterior, hemos visto cómo agregar texto a un documento PDF existente. En este capítulo, analizaremos cómo leer texto de un documento PDF existente.

Extracción de texto de un documento PDF existente

La extracción de texto es una de las principales características de la biblioteca de cuadros PDF. Puede extraer texto con elgetText() método del PDFTextStripperclase. Esta clase extrae todo el texto del documento PDF dado.

Los siguientes son los pasos para extraer texto de un documento PDF existente.

Paso 1: carga de un documento PDF existente

Cargue un documento PDF existente utilizando el método estático load() del PDDocumentclase. Este método acepta un objeto de archivo como parámetro, ya que este es un método estático, puede invocarlo usando el nombre de la clase como se muestra a continuación.

File file = new File("path of the document") 
PDDocument document = PDDocument.load(file);

Paso 2: Cree una instancia de la clase PDFTextStripper

los PDFTextStripper La clase proporciona métodos para recuperar texto de un documento PDF, por lo tanto, cree una instancia de esta clase como se muestra a continuación.

PDFTextStripper pdfStripper = new PDFTextStripper();

Paso 3: recuperar el texto

Puede leer / recuperar el contenido de una página del documento PDF utilizando el getText() método del PDFTextStripperclase. Para este método, debe pasar el objeto del documento como parámetro. Este método recupera el texto de un documento determinado y lo devuelve en forma de objeto String.

String text = pdfStripper.getText(document);

Paso 4: cerrar el documento

Finalmente, cierre el documento usando el close() método de la clase PDDocument como se muestra a continuación.

document.close();

Ejemplo

Supongamos que tenemos un documento PDF con algo de texto como se muestra a continuación.

Este ejemplo demuestra cómo leer texto del documento PDF mencionado anteriormente. Aquí, crearemos un programa Java y cargaremos un documento PDF llamadonew.pdf, que se guarda en el camino C:/PdfBox_Examples/. Guarde este código en un archivo con nombreReadingText.java.

import java.io.File;
import java.io.IOException;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
public class ReadingText {

   public static void main(String args[]) throws IOException {

      //Loading an existing document
      File file = new File("C:/PdfBox_Examples/new.pdf");
      PDDocument document = PDDocument.load(file);

      //Instantiate PDFTextStripper class
      PDFTextStripper pdfStripper = new PDFTextStripper();

      //Retrieving text from PDF document
      String text = pdfStripper.getText(document);
      System.out.println(text);

      //Closing the document
      document.close();

   }
}

Compile y ejecute el archivo Java guardado desde el símbolo del sistema utilizando los siguientes comandos.

javac ReadingText.java 
java ReadingText

Tras la ejecución, el programa anterior recupera el texto del documento PDF dado y lo muestra como se muestra a continuación.

This is an example of adding text to a page in the pdf document. we can add as many lines
as we want like this using the ShowText() method of the ContentStream class.