Потеря надстрочного тега при преобразовании 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
соответственно.
Ответы
Ответ 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