Ver Mensaje Individual
  #6 (permalink)  
Antiguo 05/11/2011, 14:58
Avatar de zero0097
zero0097
 
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años, 6 meses
Puntos: 69
Respuesta: Extraer texto DOCX

Yo se que la respuesta ya no te ayuda (por la fecha) pero para quien busque como yo la respuesta y haya llegado a tu tema (como lo hice yo) encontré la solución.

El error que te da es porque estas usando las clases que son para leer archivos .doc (del 2003 para atrás), y es lo que te dice alli que debes estar leyendo archivo XML porque no encontro la estructura que pensaba encontrar. Lo unico que hay que hacer para abrir un .docx (que tiene estructura xml) es usar las clases que la misma POI ofrece, fijarse bien que dice: eg XSSF instead of HSSF

Asi que solo hay que usar las clases de XSSF para un .docx y las HSSD para un .doc...

Les pongo el código básico para realizarlo:
Código PHP:
archivodoc = new File("c:\\muestra.docx");
        try {
            
FileInputStream fis = new FileInputStream(archivodoc);
            
InputStream entradaArch fis;
            
            
//el archivo esta en el stream entradaArch
            
            // para docs usar
            
WordExtractor we = new WordExtractor(entradaArch);

            
//para docx es un paso más
            
XWPFDocument ardocx = new XWPFDocument(entradaArch);
            
            
//instanciamos el obj para extraer
            
XWPFWordExtractor xwpf_we = new XWPFWordExtractor(ardocx);
            
            
//se lee el texto
            //leer el texto para un .doc
            
String texto we.getText();

            
//leer el texto para un .docx
            
String texto xwpf_we.getText();
            
            
// se imprime
            
System.out.println(texto);
y hay que hacer el catch() =) 
Ojala y les ayude, claro que tienen que bajar POI yo use la 3.7 y tiene que importar los jar al proyecto, y disculpen ya se que no se deben revivir temas viejos pero esto ayudará a muchos, buscando por la web hay poca info sobre esto, ojala a alguien le ayude.