Лучший способ извлечь текст из документа в формате Word, не используя COM/automation?

Есть действительно хороший учебник, который рассказывает об этом и других связанных вещах - Отправка форм AJAX: Угловой путь .

В принципе, вам нужно установить заголовок запроса POST, чтобы указать, что вы отправляете данные формы в виде строки с кодировкой URL и устанавливаете данные для отправки в том же формате

$http({
  method  : 'POST',
  url     : 'url',
  data    : $.param(xsrf),  // pass in data as strings
  headers : { 'Content-Type': 'application/x-www-form-urlencoded' }  // set the headers so angular passing info as form data (not request payload)
});

Обратите внимание, что здесь используется вспомогательная функция param () jQuery для сериализации данных в строку, но вы также можете сделать это вручную, если не используете jQuery.

24
задан Lars Truijens 15 September 2008 в 10:55
поделиться

5 ответов

Я использую catdoc или антислово для этого, независимо от того, что дает результат, который является самым легким проанализировать. Я встроил это в функции Python, таким образом, это просто в использовании от системы парсинга (который записан в Python).

import os

def doc_to_text_catdoc(filename):
    (fi, fo, fe) = os.popen3('catdoc -w "%s"' % filename)
    fi.close()
    retval = fo.read()
    erroroutput = fe.read()
    fo.close()
    fe.close()
    if not erroroutput:
        return retval
    else:
        raise OSError("Executing the command caused an error: %s" % erroroutput)

# similar doc_to_text_antiword()

переключатель-w к catdoc выключает обертывание строки, BTW.

13
ответ дан codeape 28 November 2019 в 23:39
поделиться

Используя API OpenOffice и Python, и превосходная макро-книга Andrew Pitonyak онлайн мне удалось сделать это. Раздел 7.16.4 является местом для запуска.

Еще одна подсказка, чтобы заставить его работать, не нуждаясь в экране вообще должна использовать свойство Hidden:

RO = PropertyValue('ReadOnly', 0, True, 0)
Hidden = PropertyValue('Hidden', 0, True, 0)
xDoc = desktop.loadComponentFromURL( docpath,"_blank", 0, (RO, Hidden,) )

Иначе документ щелкает на экране (вероятно, на консоли веб-сервера) при открытии его.

3
ответ дан paulmorriss 28 November 2019 в 23:39
поделиться

Откройте Office имеет API

1
ответ дан Unsliced 28 November 2019 в 23:39
поделиться

Для файлов docx проверьте скрипт Python docx2txt, доступный по адресу

http://cobweb.ecn.purdue.edu/~kak/distMisc/docx2txt

для извлечения простого текст из документа docx.

1
ответ дан 28 November 2019 в 23:39
поделиться

(Ответ тот же, что и извлечение текста из файлов MS word на питоне)

Используйте нативный модуль Python docx, который я сделал на этой неделе. Вот как извлечь весь текст из doc:

document = opendocx('Hello world.docx')

# This location is where most document content lives 
docbody = document.xpath('/w:document/w:body', namespaces=wordnamespaces)[0]

# Extract all text
print getdocumenttext(document)

Смотрите Python DocX site

100% Python, без COM, без .net, без Java, без разбора сериализованного XML с регексами, без дерьма

.
20
ответ дан 28 November 2019 в 23:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: