Как извлечь текст из определенных двоичных форматов файлов? - PullRequest
1 голос
/ 15 января 2010

В .Net, как лучше всего извлечь весь текст из нескольких двоичных форматов файлов: PDF, Word, Excel и PowerPoint.

Его не нужно форматировать, просто большой дамп текста в файле.

Код был бы отличным, но мне просто нужно указать на некоторые лучшие практики или шаблоны на нем.

Ответы [ 5 ]

3 голосов
/ 15 января 2010

Я удивлен, что никто не упомянул IFilters . IFilters - это то, что Microsoft использует для индексирования документов в Windows. Вам нужно будет поискать IFilter для конкретных форматов, которые вы ищете, но вы должны найти большинство того, что вам нужно. Хотя предостережение: IFilters не идеальны. У них есть проблемы .....

Вот статья CodProject, с которой можно начать: http://www.codeproject.com/KB/cs/IFilter.aspx

1 голос
/ 15 января 2010

Выезд Apache Tika .

Поддерживает:

  1. Microsoft Excel
  2. Microsoft Word
  3. Microsoft PowerPoint
  4. Microsoft Visio
  5. Microsoft Outlook
  6. Формат переносимого документа (PDF)
  7. OpenDocument
  8. Простой текст
  9. Rich Text Format
  10. сжатие gzip
  11. сжатие bzip2
  12. MP3 Audio
  13. MIDI аудио
  14. Волновое аудио
  15. XML
  16. HTML
  17. Файлы классов Java
  18. Java jar архивы
  19. tar архив
  20. ZIP архив
1 голос
/ 15 января 2010

Возможно, вам придется реализовать разные способы обработки файлов каждого типа. Существует множество примеров кода для чтения этих форматов с использованием взаимодействия с офисом и т. Д. Затем вы можете написать метод, который проверяет первые несколько байтов, чтобы определить, какой формат документа, или расширение и отправлять его конкретному читатель для этого типа документа.

1 голос
/ 15 января 2010

Ну, так же, как в любом другом языке / среде: Понимать формат файла, достаточный для извлечения строк.

И да, для многих форматов файлов это означает, что вы должны написать хотя бы половину парсера для этого формата. PDF особенно неприглядный, так как нет пробелов как таковых; это просто соглашение о том, как далеко друг от друга находятся глифы; Более того, PDF может содержать сжатые потоки, поэтому простой поиск печатаемых строк в файле не даст ничего полезного.

Естественно, вы можете искать библиотеку или другой инструмент, который уже делает это. Я видел хранилище документов, которое просто передавало файлы PDF через pdf2ascii и передавало полученный текст в Lucene.

0 голосов
/ 15 января 2010

Посмотрите на Office Interop, используя .Net для Office. Для PDF см. здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...