Читайте файл MS Word (doc) постранично

285
leo

Есть ли способ заставить wvWare (или, возможно, какой-нибудь другой инструмент командной строки или библиотеку Python) читать файл документа постранично? Кажется, я не могу найти ничего в руководстве wvWare, ни в Abiword, Antiword или catdoc.

1
что такое Wvware и Wmware? Prasanna 9 лет назад 0
@Prasanna Извините, должно быть wvWare. wv - это [библиотека] (http://wvware.sourceforge.net/) для просмотра старых файлов Microsoft Word (`doc`). Он используется, например, OpenOffice, LibreOffice и Abiword, поэтому, я думаю, это своего рода библиотека по умолчанию. leo 9 лет назад 0
Я знаю, что у Adobe Reader есть возможность читать вслух страницы. Может быть, вы можете конвертировать ваши документы в PDF и читать страницу за страницей (даже слово за словом) Prasanna 9 лет назад 0
@Prasanna Да, конвертация в другой формат - вариант, но я конвертирую 100 000 файлов, поэтому я надеялся избежать этого, если это возможно, чтобы сделать скрипт немного быстрее. leo 9 лет назад 0
Безумно уродливый способ сделать это - поискать ^ L в исходном документе и выяснить, где в тексте они встречаются (документы Word, отличные от docx, в основном представляют собой простой текст). barrycarter 9 лет назад 1
@ barrycarter Не могли бы вы рассказать подробнее? Что такое `^ L`? Перевод строки? (Да, я стараюсь не читать [документы] (http://download.microsoft.com/download/2/4/8/24862317-78F0-4C4B-B355-C7B2C1D997DB/ [MS-DOC] .pdf ). В мою защиту они 627 страниц) leo 9 лет назад 0
^ L - это control-L, код символа 12, который иногда называют «переводом формы» («символ перевода строки» - ^ J, двумя символами ранее). Если вы посмотрите на необработанный документ Word в emacs (или в любом редакторе, который показывает управляющие коды), вы увидите один из них в конце каждой страницы. barrycarter 9 лет назад 1
@ barrycarter Спасибо, если вы добавите эту информацию в качестве ответа, я приму и проголосую! leo 9 лет назад 0
Готово, хотя я чувствую себя плохо из-за этого, потому что я ужасно против ответов на мои собственные вопросы :) barrycarter 9 лет назад 0

1 ответ на вопрос

1
barrycarter

An insanely ugly way to do it would be to look for ^L in the original document and figure out where in the text they occur (non docx Word documents are mostly plain text: I sometimes use the strings command to read the content).

^L is control-L, character code 12 and sometimes called a "form feed". If you look at a raw Word document in emacs (or any editor that shows control codes), you'll see one of these at the end of each page.

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