Foros del Web » Programación para mayores de 30 ;) » Java »

Libreria PDFBOX

Estas en el tema de Libreria PDFBOX en el foro de Java en Foros del Web. Hola a todos. estoy usando la libreria pdfbox para extraer texto de unos documentos pdf, tengo 2 tipos de documentos: 1 con texto normal para ...
  #1 (permalink)  
Antiguo 19/06/2013, 10:26
 
Fecha de Ingreso: marzo-2011
Mensajes: 226
Antigüedad: 13 años, 1 mes
Puntos: 1
Libreria PDFBOX

Hola a todos.

estoy usando la libreria pdfbox para extraer texto de unos documentos pdf, tengo 2 tipos de documentos: 1 con texto normal para el cual saco el texto a la perfecion. y otro que contiene 3 tipos de texto (titulo, subtitulo y texto). el tema es que tengo que extraer esa informacion y dividir el texto de tal manera que me queden por un lado los titulos, por otro lado los subtitulos y por otro el texto. los titulos y subtitulos lo unico que los diferencia del texto es que estan en negrita y cursiva, pero el problema es que no puedo diferenciar cual es un titulo y cual un subtitulo ya que pdfbox me extrae el texto sin estilo (es decir sin negrita y cursiva)

no se si alguien alguna vez ha hecho algo parecido o sabe algo mas que yo de la libreria pdfbox, porque estuve ojeando la API y no veo un metodo o algo que me indique como puedo obtener estos estilos.

por si es de ayuda, la forma que uso para extraer el texto es la siguiente:

Código Java:
Ver original
  1. public String ExtraerTexto() throws IOException{
  2.        
  3.         String texto = "";
  4.           try
  5.           {
  6.             doc = PDDocument.load (file_name);   
  7.             PDFTextStripper stripper = new PDFTextStripper();
  8.             stripper.setStartPage(1);
  9.             stripper.setEndPage(3);
  10.             //stripper.setEndPage(Integer.MAX_VALUE);
  11.            
  12.            
  13.             stripper.writeText(doc, sw);
  14.           }
  15.           finally
  16.           {
  17.             if (doc != null) doc.close();
  18.           }
  19.        
  20.           StringBuffer sbuf = new StringBuffer();
  21.           sbuf.append(sw.toString() );
  22.        
  23.           int i = sbuf.length() - 1;
  24.           while (i > 0)
  25.           {
  26.             if (sbuf.charAt(i) == '\r' || sbuf.charAt(i) == '\n')
  27.         {
  28.           if (sbuf.charAt(i-1) == '-')
  29.           {
  30.             sbuf.deleteCharAt(i--);  
  31.             sbuf.deleteCharAt(i);    
  32.               }
  33.             }
  34.             i--;
  35.           }
  36.           //System.out.println(sbuf);
  37.          
  38.           texto = sbuf.toString();
  39.          
  40.           return texto;
  41.     }

es metodo me devuelve todo el texto separado por lineas tal cual esta en el archivo pdf. lo ideal seria que hubiese un bit o una bandera que indicase que caracteres estan en negrita o cursiva o algo pero vamos que cualquier idea para poder obtener dichos estilos me vale bien


gracias

Etiquetas: libreria, metodo, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:45.