Programa Java para extraer contenido de un archivo ODF

El completo de ODF es formato de documento abierto. es una familia internacional de estándares que es el sucesor de formatos de documentos específicos de proveedores obsoletos de uso común como .doc, .wpd, .xls. Los documentos ODF son más pequeños en comparación con otros formatos. La clase OpenDocumentParser se usa de la biblioteca TIKA para extraer el contenido del archivo ODF.

Métodos utilizados:

  1. BodyContentHandler(): crea un controlador de contenido que escribe eventos de caracteres de cuerpo XHTML en un búfer de string interno.
  2. Metadata() : construye metadatos nuevos y vacíos.
  3. ParseContext(): crea un objeto de contexto de análisis que se utiliza para pasar información de contexto a los analizadores Tika.
  4. parse(): crea una instancia del objeto del analizador e invoca el método de análisis.

Las siguientes son las dependencias requeridas para ejecutar el siguiente código java:

tika-parsers-1.24.1.jar
commons-io-2.8.0.jar
slf4j-api-2.0.0-alpha0.jar

Implementación:

Java

// Java Program to Extract Content from a ODF file
import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.odf.OpenDocumentParser;
import org.apache.tika.sax.BodyContentHandler;
import org.xml.sax.SAXException;
 
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import sun.security.util.Length;
 
public class OdfContentExtractor {
    public static void main(String[] args)
    {
 
        try {
            BodyContentHandler handler
                = new BodyContentHandler();
 
            Metadata metadata = new Metadata();
 
            // Here .odt is open document text format.
            FileInputStream inputstream
                = new FileInputStream(
                    new File("F:\\geeks.odt"));
            ParseContext parsecontent = new ParseContext();
 
            // Parsing the open document.
            OpenDocumentParser opendocumentparser
                = new OpenDocumentParser();
 
            // Passing the InputStream , ContentHandler,
            // Metadata , ParseContext to the parse method.
            opendocumentparser.parse(inputstream, handler,
                                     metadata,
                                     parsecontent);
            System.out.println("Content in the document :"
                               + handler.toString());
 
            // Displaying the metadata of the odf file.
            System.out.println("Metadata of the document:");
            String[] metaName = metadata.names();
            int l = metaName.length;
            for (int i = 0; i < l; i++) {
                System.out.println(
                    metaName[i]
                    + " : =  " + metadata.get(metaName[i]));
            }
        }
        catch (Exception e) {
 
            System.out.println(
                "failed to extract content due to " + e);
        }
    }
}

Producción:

Content in the document :Geekforgeeks has a great content on DSA.

Metadata of the document:
date : =  2020-11-21T05:38:00Z
meta:paragraph-count : =  1
meta:word-count : =  6
meta:initial-author : =  Mohan Sai
initial-creator : =  Mohan Sai
dc:creator : =  Mohan Sai
generator : =  MicrosoftOffice/15.0 MicrosoftWord
Word-Count : =  6
dcterms:created : =  2020-11-21T05:36:00Z
dcterms:modified : =  2020-11-21T05:38:00Z
Last-Modified : =  2020-11-21T05:38:00Z
nbPara : =  1
Last-Save-Date : =  2020-11-21T05:38:00Z
meta:character-count : =  40
Paragraph-Count : =  1
meta:save-date : =  2020-11-21T05:38:00Z
modified : =  2020-11-21T05:38:00Z
Edit-Time : =  PT0S
nbCharacter : =  40
nbPage : =  1
nbWord : =  6
Content-Type : =  application/vnd.oasis.opendocument.text
creator : =  Mohan Sai
meta:author : =  Mohan Sai
meta:creation-date : =  2020-11-21T05:36:00Z
Creation-Date : =  2020-11-21T05:36:00Z
xmpTPg:NPages : =  1
Character Count : =  40
editing-cycles : =  3
Page-Count : =  1
Author : =  Mohan Sai
meta:page-count : =  1

Publicación traducida automáticamente

Artículo escrito por pulamolusaimohan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *