Преобразование .docx файлы к простому тексту и сохранение разрывов строки для поддержания ссылок номера строки на исходный документ: практическое руководство и последствия?

Пойдите сюда и загрузите "newrez"

http://gnome-look.org/content/show.php/newrez+-+Increase+Screen+Rez+For+Netbook?content=134686

Я - автор. Это преодолевает захваченную проблему с мышью.

9
13.04.2017, 15:36
1 ответ

docx2txt работает с информацией в файле docx , который представляет собой заархивированный набор файлов XML.

Что касается переноса строк, данные XML .docx включают только информацию о абзацах и жестких переходах, но не о мягких переходах. Мягкие разрывы - это результат отрисовки текста с использованием определенного шрифта, размера шрифта и ширины страницы. docx2txt обычно просто пытается уместить текст в 80 столбцов (80 столбцов можно настроить), без учета шрифта и размера шрифта. Если ваш .docx содержит информацию о шрифтах из системы Windows, которая недоступна в Unix / Linux, то экспорт в .txt через Open / LibreOffice также вряд ли приведет к тому же макет, хотя и старается хорошо поработать¹.

Таким образом, docx2txt или любая другая утилита командной строки, включая обработку Open / LibreOffice, управляемую командной строкой, не гарантированно преобразует текст в тот же макет, что и при экспорте из Word².

Если вы хотите (или вынуждены по требованию клиента) выполнять рендеринг точно так, как это делает Word, то, по моему опыту, есть только один способ: позволить Word рендерить. Столкнувшись с аналогичной проблемой, как у вас, и получив несовместимые результаты при использовании других инструментов, включая OpenOffice, я вернулся к установке виртуальной машины Windows на хост-сервере Linux. На клиентской виртуальной машине программа наблюдает за преобразованием входящих файлов на хосте, который запускает Word и заставляет его выполнить преобразование, а затем копирует результат.

Решение об использовании только CR / LF или LF, или UTF-8 или какой-либо другой кодировки для .txt во многом зависит от того, как используются полученные файлы. Если полученные файлы будут использоваться в Windows, я определенно выберу CR / LF, UTF-8 и UTF-8 BOM . Современные программы в Linux могут сделать вывод, что файл имеет формат UTF-8, но не будут отображать спецификацию и / или использовать эту информацию. Вам следует протестировать все ваши целевые приложения на совместимость, если они известны заранее.

¹ Такая несовместимость - основная причина, по которой некоторые из моих друзей не могут перейти на Linux с Windows, хотя им хотелось бы. Им приходится использовать MicroSoft Word, поскольку Open / LibreOffice время от времени искажает тексты, которыми они обмениваются с клиентами.
² Вы можете установить все шрифты, используемые в файлах Word, и иногда может повезти с некоторыми текстами.
³ Визуализация PDF-файлов из .doc / .docx
Программа использует автоматизацию графического интерфейса пользователя - как будто кто-то щелкает по ее меню - и не пытается управлять Word через API . Я почти уверен, что и последнее можно сделать, и у него будет то преимущество, что ничего не сломается, если Word будет обновлен

8
27.01.2020, 20:07

Теги

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