Estoy desarrollando un motor de búsqueda de escritorio usando VB9 (VS2008) y Lucene.NET. El indexador en Lucene.NET solo acepta datos de texto sin formato y no es posible extraer directamente el texto sin formato de un documento de Microsoft Office (DOC, DOCX, PPT, PPTX) y PDF. ¿Cuál es la mejor forma de extraer datos de texto sin formato de dichos archivos?¿Cuál es la mejor manera de analizar documentos de Microsoft Office y PDF?
Respuesta
Puede, al igual que la búsqueda en el escritorio de Windows, usar componentes que implementen la interfaz IFilter.
sólo puedo hablar de documentos de MS Office aquí. Hay varias maneras de hacer esto:
- El uso de la automatización COM
- El uso de convertidores que la producción del documento en un formato más accesible
- El uso de las bibliotecas 3 ª parte
- El uso de OpenXML SDK de Microsoft
La automatización COM tiene la desventaja de que no siempre es confiable, principalmente porque las aplicaciones tienden a bloquearse debido a los diálogos emergentes modales.
Los convertidores están disponibles para Word. Puede consultar el Text Converter SDK disponible de Microsoft que le permitiría usar los convertidores de documentos que vienen con Word en una aplicación independiente. Requiere un poco de código C, pero ya que está utilizando los mismos motores de conversión que Office obtendrá resultados de alta fidelidad. El SDK se puede obtener de http://support.microsoft.com/kb/111716.
Para la tercera opción que utiliza bibliotecas de terceros es posible que desee echar un vistazo a Apache POI o b2xtranslator project en SourceForge. Este último proporciona una biblioteca C# que le permite extraer el texto de documentos binarios de Word. El desarrollo de PowerPoint todavía está en un estadio temprano, pero la extracción de texto ya debería estar funcionando.
La última opción sería utilizar el SDK OpenXML de Microsoft. Esta podría ser la forma preferida/más fácil. Busque muestras en Google. También podría manejar documentos binarios convirtiendo en primer lugar utilizando el paquete de compatibilidad de Office (descargar e instalar desde Microsoft):
Palabra:
"C:\Program Files\Microsoft Office\Office12\wordconv.exe" -oice -nme <input file> <output file>
Excel:
"C:\Program Files\Microsoft Office\Office12\excelcnv.exe" -oice <input file> <output file>
PowerPoint:
"C:\Program Files\Microsoft Office\Office12\ppcnvcom.exe" -oice <input file> <output file>
Para PDF puede usar el componente .NET PDF Reader de mi compañía que fe atures extracción de texto.
Este es exactamente el código que escriba para extraer el texto de un PDF:
public String ReadTextFromPages(Stream s)
{
using (PdfTextDocument doc = new PdfTextDocument(s))
{
PdfTextReader rdr = doc.GetPdfTextReader();
return rdr.ReadToEnd();
}
}
- 1. ¿Cuál es la mejor manera de analizar una gramática simple?
- 2. Una buena manera de crear PDF desde documentos de Office en Java
- 3. documentos de Office Convert sin Office
- 4. ¿Cuál es una buena opción para convertir documentos de Office a PDF o Imagen
- 5. ¿Cuál es la mejor manera de leer y escribir documentos cXML en C#?
- 6. ¿Cuál es la mejor manera de incluir un PDF en mi documentación de Sphinx?
- 7. ¿La mejor manera de analizar el flotador?
- 8. Conversión de documentos de MS Word a PDF en ASP.NET
- 9. ¿Cuál es la mejor manera de analizar muchos argumentos complejos de línea de comandos en Java?
- 10. ¿Cuál es la mejor manera de analizar XML grande (tamaño de 1 GB) en C#?
- 11. ¿cuál es la mejor manera de analizar la respuesta XML en AJAX
- 12. ¿Cuál es la mejor herramienta para analizar archivos de registro?
- 13. ¿Cuál es la mejor manera de analizar los números localizados de .NET/Razor en javascript?
- 14. ¿Cuál es la mejor manera de analizar el archivo de Excel en Perl?
- 15. ¿Cuál es la mejor manera de analizar una cadena de palabras "malas" en C#?
- 16. ¿Cuál es la mejor manera de reutilizar el analizador Lua?
- 17. ¿Cuál es la mejor forma de analizar cadenas?
- 18. ¿Cuál es la mejor manera de usar la versión de archivo y la versión de ensamblaje?
- 19. ¿Cuál es la mejor manera de leer y analizar un archivo de texto grande a través de la red?
- 20. ¿Cuál es la mejor manera de analizar un atributo booleano XML (en .NET)?
- 21. ¿Cuál es la mejor manera de analizar Paypal NVP en PHP?
- 22. ¿Cuál es la mejor manera de analizar un archivo delimitado por tabuladores en Ruby?
- 23. Guardar varios documentos de Word como HTML a través de la API de Office
- 24. La mejor manera de comparar 2 documentos XML en .NET
- 25. Microsoft Office Interop Assembly referencias
- 26. ¿Cuál es la mejor manera de mostrar un archivo PDF en Delphi 2009
- 27. ¿Subversión eficientemente documentos de Office OpenXML?
- 28. ¿Cuál es la mejor manera de gestionar el cambio?
- 29. Indexar documentos de Word y PDF con Sphinx
- 30. ¿Cuál es la mejor manera de dibujar en la consola?
Si puedo añadir a esto - por el amor de todo lo que es sagrado, utilice el Foxit PDF IFilter. La versión de 32 bits es gratuita. Es mucho más rápido y más estable que Adobe. http://www.foxitsoftware.com/pdf/ifilter/index.html. –