En esta publicación, aprenderá cómo extraer texto de archivos PDF sin problemas usando Java. La extracción de texto podría ser útil en varios escenarios, como el análisis de texto, la recuperación de información, el análisis de documentos, etc. Dado que PDF es uno de los documentos digitales más utilizados, los casos de uso de extracción de texto de documentos PDF son más numerosos. Entonces, comencemos y veamos cómo realizar la extracción de texto PDF desde aplicaciones Java.
- API de extracción de texto Java - Descarga gratuita
- Extraer texto de PDF usando Java
- Extraer texto de una página específica en PDF
- Extracción de texto de una región de página en PDF
API de Java para extraer texto de PDF - Descarga gratuita
Aspose.PDF for Java es una conocida API de manipulación de archivos PDF que proporciona una amplia gama de funciones para crear y procesar archivos PDF. La API contiene un poderoso extractor de texto que proporciona varias formas de extraer texto de documentos PDF dentro de unas pocas líneas de código. Puede descargar el JAR de la API o instalarlo dentro de sus aplicaciones basadas en Maven usando las siguientes configuraciones.
<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>
Extraer texto de PDF usando Java
Los siguientes son los pasos para extraer texto de un documento PDF utilizando Aspose.PDF for Java.
- Utilice la clase Document para cargar el archivo PDF.
- Cree un objeto de la clase TextAbsorber.
- Acepte TextAbsorber para todas las páginas del PDF utilizando el método Document.getPages().accept(TextAbsorber).
- Use el método TextAbsorber.getText() para obtener todo el texto del PDF.
- Guarde el texto en un archivo TXT (opcional).
El siguiente ejemplo de código muestra cómo extraer texto de PDF usando Java.
// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// Abrir documento
Document pdfDocument = new Document("input.pdf");
// Crear objeto TextAbsorber para extraer texto
TextAbsorber textAbsorber = new TextAbsorber();
// Aceptar el absorbedor para todas las páginas.
pdfDocument.getPages().accept(textAbsorber);
// Obtener el texto extraído
String extractedText = textAbsorber.getText();
// Crea un escritor y abre el archivo.
java.io.FileWriter writer = new java.io.FileWriter(new java.io.File("Extracted_text.txt"));
writer.write(extractedText);
// Escriba una línea de texto en el archivo tw.WriteLine(extractedText);
// Cierra la corriente
writer.close();
Extraer texto de una página específica en PDF
También puede extraer texto de una página específica del documento PDF siguiendo los siguientes pasos.
- Utilice la clase Document para cargar el archivo PDF.
- Cree una instancia de la clase TextDevice.
- Defina opciones adicionales usando la clase TextExtractionOptions.
- Configure las opciones usando el método TextDevice.setExtractionOptions(TextExtractionOptions).
- Utilice TextDevice.Process(Page, String) para extraer el texto de la página especificada.
El siguiente ejemplo de código muestra cómo extraer texto de una página específica en PDF usando Java.
// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// documento abierto
Document pdfDocument = new Document("input.pdf");
// crear dispositivo de texto
TextDevice textDevice = new TextDevice();
// establecer opciones de extracción de texto - establecer el modo de extracción de texto (Raw o Pure)
TextExtractionOptions textExtOptions = new TextExtractionOptions(TextExtractionOptions.TextFormattingMode.Raw);
textDevice.setExtractionOptions(textExtOptions);
// obtenga el texto de la primera página del PDF y guárdelo en formato de archivo
textDevice.process(pdfDocument.getPages().get_Item(1), "ExtractedText.txt");
Extraer texto de una región de página en PDF
También puede extraer texto de una región particular de la página en PDF. Para esto, puede definir un rectángulo para cubrir la región de donde necesita extraer el texto. Los siguientes son los pasos para extraer texto de una región de página.
- Utilice la clase Document para cargar el archivo PDF.
- Cree un objeto de la clase TextAbsorber.
- Establezca el límite para el límite de página y cree un rectángulo usando TextAbsorber.getTextSearchOptions().setLimitToPageBounds(true) y TextAbsorber.getTextSearchOptions().setRectangle(new Rectangle(100, 200, 250, 350)) métodos respectivamente.
- Acepte el absorbedor para la página en particular.
- Use el método TextAbsorber.getText() para extraer texto.
El siguiente ejemplo de código muestra cómo extraer texto de una región de página particular en Java.
// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// documento abierto
Document doc = new Document("page_0001.pdf");
// crear objeto TextAbsorber para extraer texto
TextAbsorber absorber = new TextAbsorber();
absorber.getTextSearchOptions().setLimitToPageBounds(true);
absorber.getTextSearchOptions().setRectangle(new Rectangle(100, 200, 250, 350));
// aceptar el absorbedor para la primera página
doc.getPages().get_Item(1).accept(absorber);
// obtener el texto extraído
String extractedText = absorber.getText();
// crear un escritor y abrir el archivo
BufferedWriter writer = new BufferedWriter(new FileWriter(new java.io.File("ExtractedText.txt")));
// escribir contenidos extraídos
writer.write(extractedText);
// Cerrar escritor
writer.close();
Conclusión
En este artículo, aprendió cómo extraer texto de PDF usando Java. Ha visto varias formas de extracción de texto, como extraer texto de un PDF completo, una página específica o una región de página específica. Puede obtener más información sobre la API PDF de Java utilizando documentación.
Ver también
Información: Aspose desarrolló recientemente un servicio gratuito en línea Text to GIF que le permite animar textos o generar GIF a partir de textos simples.