Подтвердить что ты не робот

Потеря надстрочного тега при преобразовании HTML в DOCX с использованием libreoffice

У меня есть следующий HTML:

<html><body><p>n<sup>th</sup></p></body></html>

Я использую команду:

$libreoffice --convert-to docx: "MS Word 2007 XML" test.html

Чтобы преобразовать этот HTML в файл DOCX. Однако я замечаю, что в результате DOCX файл фактически не содержит тег <sup>. Похоже, что используется позиция и размер для репликации тега <w:vertAlign>:

<w:position w:val="8"/><w:sz w:val="19"/>

Мне нужно знать, как сделать libreoffice помещенным в тег <w:vertAlign> вместо использования позиции и размера.

Дополнительная информация:

У меня была аналогичная проблема с жирным шрифтом и курсивом (<strong><em>), но мне удалось правильно преобразовать, если я преобразовал теги strong и em в теги b и i соответственно.

4b9b3361

Ответ 1

Если вы хотите редактировать HTML, было бы гораздо лучше использовать инструмент, подходящий для редактирования HTML, например Notepad ++ или Sublime (в качестве примеров).

Если вам нужна HTML-версия документа LibreOffice по определенной причине, вы можете открыть файл HTML в Блокноте и сохранить в виде текстового файла с .txt в качестве расширения. Это должно позволить вам открыть документ в LibreOffice.

Ответ 2

Вы можете попробовать использовать редактор WYSIWYG (что вы видите, что получаете), например TinyMCE (http://www.tinymce.com/). Их много, и вы также можете найти для них настольные приложения. но если вы хотите преобразовать его в docx, вы можете попробовать этот http://htmltodocx.codeplex.com/, он написан на php и использует PHPWord и достаточно эффективен.

Ответ 3

Просто создайте Python script, который заменяет ваши нежелательные теги тегом <w:vertAlign>, где это необходимо.

Ответ 4

Команда отлично работает, если вы замените "docx" на "xml", например:

libreoffice --convert-to xml:"MS Word 2003 XML" test.html